StringUtils.java

1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *      http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 */
17
package org.apache.commons.lang3;
18
19
import java.io.UnsupportedEncodingException;
20
import java.nio.charset.Charset;
21
import java.text.Normalizer;
22
import java.util.ArrayList;
23
import java.util.Arrays;
24
import java.util.Iterator;
25
import java.util.List;
26
import java.util.Locale;
27
import java.util.Objects;
28
import java.util.regex.Pattern;
29
30
/**
31
 * <p>Operations on {@link java.lang.String} that are
32
 * {@code null} safe.</p>
33
 *
34
 * <ul>
35
 *  <li><b>IsEmpty/IsBlank</b>
36
 *      - checks if a String contains text</li>
37
 *  <li><b>Trim/Strip</b>
38
 *      - removes leading and trailing whitespace</li>
39
 *  <li><b>Equals/Compare</b>
40
 *      - compares two strings null-safe</li>
41
 *  <li><b>startsWith</b>
42
 *      - check if a String starts with a prefix null-safe</li>
43
 *  <li><b>endsWith</b>
44
 *      - check if a String ends with a suffix null-safe</li>
45
 *  <li><b>IndexOf/LastIndexOf/Contains</b>
46
 *      - null-safe index-of checks
47
 *  <li><b>IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut</b>
48
 *      - index-of any of a set of Strings</li>
49
 *  <li><b>ContainsOnly/ContainsNone/ContainsAny</b>
50
 *      - does String contains only/none/any of these characters</li>
51
 *  <li><b>Substring/Left/Right/Mid</b>
52
 *      - null-safe substring extractions</li>
53
 *  <li><b>SubstringBefore/SubstringAfter/SubstringBetween</b>
54
 *      - substring extraction relative to other strings</li>
55
 *  <li><b>Split/Join</b>
56
 *      - splits a String into an array of substrings and vice versa</li>
57
 *  <li><b>Remove/Delete</b>
58
 *      - removes part of a String</li>
59
 *  <li><b>Replace/Overlay</b>
60
 *      - Searches a String and replaces one String with another</li>
61
 *  <li><b>Chomp/Chop</b>
62
 *      - removes the last part of a String</li>
63
 *  <li><b>AppendIfMissing</b>
64
 *      - appends a suffix to the end of the String if not present</li>
65
 *  <li><b>PrependIfMissing</b>
66
 *      - prepends a prefix to the start of the String if not present</li>
67
 *  <li><b>LeftPad/RightPad/Center/Repeat</b>
68
 *      - pads a String</li>
69
 *  <li><b>UpperCase/LowerCase/SwapCase/Capitalize/Uncapitalize</b>
70
 *      - changes the case of a String</li>
71
 *  <li><b>CountMatches</b>
72
 *      - counts the number of occurrences of one String in another</li>
73
 *  <li><b>IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable</b>
74
 *      - checks the characters in a String</li>
75
 *  <li><b>DefaultString</b>
76
 *      - protects against a null input String</li>
77
 *  <li><b>Rotate</b>
78
 *      - rotate (circular shift) a String</li>
79
 *  <li><b>Reverse/ReverseDelimited</b>
80
 *      - reverses a String</li>
81
 *  <li><b>Abbreviate</b>
82
 *      - abbreviates a string using ellipsis or another given String</li>
83
 *  <li><b>Difference</b>
84
 *      - compares Strings and reports on their differences</li>
85
 *  <li><b>LevenshteinDistance</b>
86
 *      - the number of changes needed to change one String into another</li>
87
 * </ul>
88
 *
89
 * <p>The {@code StringUtils} class defines certain words related to
90
 * String handling.</p>
91
 *
92
 * <ul>
93
 *  <li>null - {@code null}</li>
94
 *  <li>empty - a zero-length string ({@code ""})</li>
95
 *  <li>space - the space character ({@code ' '}, char 32)</li>
96
 *  <li>whitespace - the characters defined by {@link Character#isWhitespace(char)}</li>
97
 *  <li>trim - the characters &lt;= 32 as in {@link String#trim()}</li>
98
 * </ul>
99
 *
100
 * <p>{@code StringUtils} handles {@code null} input Strings quietly.
101
 * That is to say that a {@code null} input will return {@code null}.
102
 * Where a {@code boolean} or {@code int} is being returned
103
 * details vary by method.</p>
104
 *
105
 * <p>A side effect of the {@code null} handling is that a
106
 * {@code NullPointerException} should be considered a bug in
107
 * {@code StringUtils}.</p>
108
 *
109
 * <p>Methods in this class give sample code to explain their operation.
110
 * The symbol {@code *} is used to indicate any input including {@code null}.</p>
111
 *
112
 * <p>#ThreadSafe#</p>
113
 * @see java.lang.String
114
 * @since 1.0
115
 */
116
//@Immutable
117
public class StringUtils {
118
    // Performance testing notes (JDK 1.4, Jul03, scolebourne)
119
    // Whitespace:
120
    // Character.isWhitespace() is faster than WHITESPACE.indexOf()
121
    // where WHITESPACE is a string of all whitespace characters
122
    //
123
    // Character access:
124
    // String.charAt(n) versus toCharArray(), then array[n]
125
    // String.charAt(n) is about 15% worse for a 10K string
126
    // They are about equal for a length 50 string
127
    // String.charAt(n) is about 4 times better for a length 3 string
128
    // String.charAt(n) is best bet overall
129
    //
130
    // Append:
131
    // String.concat about twice as fast as StringBuffer.append
132
    // (not sure who tested this)
133
134
    /**
135
     * A String for a space character.
136
     *
137
     * @since 3.2
138
     */
139
    public static final String SPACE = " ";
140
141
    /**
142
     * The empty String {@code ""}.
143
     * @since 2.0
144
     */
145
    public static final String EMPTY = "";
146
147
    /**
148
     * A String for linefeed LF ("\n").
149
     *
150
     * @see <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.6">JLF: Escape Sequences
151
     *      for Character and String Literals</a>
152
     * @since 3.2
153
     */
154
    public static final String LF = "\n";
155
156
    /**
157
     * A String for carriage return CR ("\r").
158
     *
159
     * @see <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.6">JLF: Escape Sequences
160
     *      for Character and String Literals</a>
161
     * @since 3.2
162
     */
163
    public static final String CR = "\r";
164
165
    /**
166
     * Represents a failed index search.
167
     * @since 2.1
168
     */
169
    public static final int INDEX_NOT_FOUND = -1;
170
171
    /**
172
     * <p>The maximum size to which the padding constant(s) can expand.</p>
173
     */
174
    private static final int PAD_LIMIT = 8192;
175
176
    /**
177
     * <p>{@code StringUtils} instances should NOT be constructed in
178
     * standard programming. Instead, the class should be used as
179
     * {@code StringUtils.trim(" foo ");}.</p>
180
     *
181
     * <p>This constructor is public to permit tools that require a JavaBean
182
     * instance to operate.</p>
183
     */
184
    public StringUtils() {
185
        super();
186
    }
187
188
    // Empty checks
189
    //-----------------------------------------------------------------------
190
    /**
191
     * <p>Checks if a CharSequence is empty ("") or null.</p>
192
     *
193
     * <pre>
194
     * StringUtils.isEmpty(null)      = true
195
     * StringUtils.isEmpty("")        = true
196
     * StringUtils.isEmpty(" ")       = false
197
     * StringUtils.isEmpty("bob")     = false
198
     * StringUtils.isEmpty("  bob  ") = false
199
     * </pre>
200
     *
201
     * <p>NOTE: This method changed in Lang version 2.0.
202
     * It no longer trims the CharSequence.
203
     * That functionality is available in isBlank().</p>
204
     *
205
     * @param cs  the CharSequence to check, may be null
206
     * @return {@code true} if the CharSequence is empty or null
207
     * @since 3.0 Changed signature from isEmpty(String) to isEmpty(CharSequence)
208
     */
209
    public static boolean isEmpty(final CharSequence cs) {
210 3 1. isEmpty : negated conditional → KILLED
2. isEmpty : negated conditional → KILLED
3. isEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return cs == null || cs.length() == 0;
211
    }
212
213
    /**
214
     * <p>Checks if a CharSequence is not empty ("") and not null.</p>
215
     *
216
     * <pre>
217
     * StringUtils.isNotEmpty(null)      = false
218
     * StringUtils.isNotEmpty("")        = false
219
     * StringUtils.isNotEmpty(" ")       = true
220
     * StringUtils.isNotEmpty("bob")     = true
221
     * StringUtils.isNotEmpty("  bob  ") = true
222
     * </pre>
223
     *
224
     * @param cs  the CharSequence to check, may be null
225
     * @return {@code true} if the CharSequence is not empty and not null
226
     * @since 3.0 Changed signature from isNotEmpty(String) to isNotEmpty(CharSequence)
227
     */
228
    public static boolean isNotEmpty(final CharSequence cs) {
229 2 1. isNotEmpty : negated conditional → KILLED
2. isNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return !isEmpty(cs);
230
    }
231
       
232
    /**
233
     * <p>Checks if any one of the CharSequences are empty ("") or null.</p>
234
     *
235
     * <pre>
236
     * StringUtils.isAnyEmpty(null)             = true
237
     * StringUtils.isAnyEmpty(null, "foo")      = true
238
     * StringUtils.isAnyEmpty("", "bar")        = true
239
     * StringUtils.isAnyEmpty("bob", "")        = true
240
     * StringUtils.isAnyEmpty("  bob  ", null)  = true
241
     * StringUtils.isAnyEmpty(" ", "bar")       = false
242
     * StringUtils.isAnyEmpty("foo", "bar")     = false
243
     * </pre>
244
     *
245
     * @param css  the CharSequences to check, may be null or empty
246
     * @return {@code true} if any of the CharSequences are empty or null
247
     * @since 3.2
248
     */
249
    public static boolean isAnyEmpty(final CharSequence... css) {
250 1 1. isAnyEmpty : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
251 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
252
      }
253 3 1. isAnyEmpty : changed conditional boundary → KILLED
2. isAnyEmpty : Changed increment from 1 to -1 → KILLED
3. isAnyEmpty : negated conditional → KILLED
      for (final CharSequence cs : css){
254 1 1. isAnyEmpty : negated conditional → KILLED
        if (isEmpty(cs)) {
255 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
256
        }
257
      }
258 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
259
    }
260
261
    /**
262
     * <p>Checks if any one of the CharSequences are not empty ("") or null.</p>
263
     *
264
     * <pre>
265
     * StringUtils.isAnyNotEmpty(null)             = false
266
     * StringUtils.isAnyNotEmpty(null, "foo")      = true
267
     * StringUtils.isAnyNotEmpty("", "bar")        = true
268
     * StringUtils.isAnyNotEmpty("bob", "")        = true
269
     * StringUtils.isAnyNotEmpty("  bob  ", null)  = true
270
     * StringUtils.isAnyNotEmpty(" ", "bar")       = true
271
     * StringUtils.isAnyNotEmpty("foo", "bar")     = true
272
     * </pre>
273
     *
274
     * @param css  the CharSequences to check, may be null or empty
275
     * @return {@code true} if any of the CharSequences are empty or null
276
     * @since 3.6
277
     */
278
    public static boolean isAnyNotEmpty(final CharSequence... css) {
279 1 1. isAnyNotEmpty : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
280 1 1. isAnyNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
281
      }
282 3 1. isAnyNotEmpty : changed conditional boundary → KILLED
2. isAnyNotEmpty : Changed increment from 1 to -1 → KILLED
3. isAnyNotEmpty : negated conditional → KILLED
      for (final CharSequence cs : css) {
283 1 1. isAnyNotEmpty : negated conditional → KILLED
        if (isNotEmpty(cs)) {
284 1 1. isAnyNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
285
        }
286
      }
287 1 1. isAnyNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
288
    }
289
290
    /**
291
     * <p>Checks if none of the CharSequences are empty ("") or null.</p>
292
     *
293
     * <pre>
294
     * StringUtils.isNoneEmpty(null)             = false
295
     * StringUtils.isNoneEmpty(null, "foo")      = false
296
     * StringUtils.isNoneEmpty("", "bar")        = false
297
     * StringUtils.isNoneEmpty("bob", "")        = false
298
     * StringUtils.isNoneEmpty("  bob  ", null)  = false
299
     * StringUtils.isNoneEmpty(" ", "bar")       = true
300
     * StringUtils.isNoneEmpty("foo", "bar")     = true
301
     * </pre>
302
     *
303
     * @param css  the CharSequences to check, may be null or empty
304
     * @return {@code true} if none of the CharSequences are empty or null
305
     * @since 3.2
306
     */
307
    public static boolean isNoneEmpty(final CharSequence... css) {
308 2 1. isNoneEmpty : negated conditional → KILLED
2. isNoneEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return !isAnyEmpty(css);
309
    }
310
311
    /**
312
     * <p>Checks if a CharSequence is whitespace, empty ("") or null.</p>
313
     * 
314
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
315
     *
316
     * <pre>
317
     * StringUtils.isBlank(null)      = true
318
     * StringUtils.isBlank("")        = true
319
     * StringUtils.isBlank(" ")       = true
320
     * StringUtils.isBlank("bob")     = false
321
     * StringUtils.isBlank("  bob  ") = false
322
     * </pre>
323
     *
324
     * @param cs  the CharSequence to check, may be null
325
     * @return {@code true} if the CharSequence is null, empty or whitespace
326
     * @since 2.0
327
     * @since 3.0 Changed signature from isBlank(String) to isBlank(CharSequence)
328
     */
329
    public static boolean isBlank(final CharSequence cs) {
330
        int strLen;
331 2 1. isBlank : negated conditional → KILLED
2. isBlank : negated conditional → KILLED
        if (cs == null || (strLen = cs.length()) == 0) {
332 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
333
        }
334 3 1. isBlank : changed conditional boundary → KILLED
2. isBlank : Changed increment from 1 to -1 → KILLED
3. isBlank : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
335 1 1. isBlank : negated conditional → KILLED
            if (Character.isWhitespace(cs.charAt(i)) == false) {
336 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
337
            }
338
        }
339 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
340
    }
341
342
    /**
343
     * <p>Checks if a CharSequence is not empty (""), not null and not whitespace only.</p>
344
     * 
345
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
346
     *
347
     * <pre>
348
     * StringUtils.isNotBlank(null)      = false
349
     * StringUtils.isNotBlank("")        = false
350
     * StringUtils.isNotBlank(" ")       = false
351
     * StringUtils.isNotBlank("bob")     = true
352
     * StringUtils.isNotBlank("  bob  ") = true
353
     * </pre>
354
     *
355
     * @param cs  the CharSequence to check, may be null
356
     * @return {@code true} if the CharSequence is
357
     *  not empty and not null and not whitespace
358
     * @since 2.0
359
     * @since 3.0 Changed signature from isNotBlank(String) to isNotBlank(CharSequence)
360
     */
361
    public static boolean isNotBlank(final CharSequence cs) {
362 2 1. isNotBlank : negated conditional → KILLED
2. isNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return !isBlank(cs);
363
    }
364
365
    /**
366
     * <p>Checks if any one of the CharSequences are blank ("") or null and not whitespace only.</p>
367
     * 
368
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
369
     *
370
     * <pre>
371
     * StringUtils.isAnyBlank(null)             = true
372
     * StringUtils.isAnyBlank(null, "foo")      = true
373
     * StringUtils.isAnyBlank(null, null)       = true
374
     * StringUtils.isAnyBlank("", "bar")        = true
375
     * StringUtils.isAnyBlank("bob", "")        = true
376
     * StringUtils.isAnyBlank("  bob  ", null)  = true
377
     * StringUtils.isAnyBlank(" ", "bar")       = true
378
     * StringUtils.isAnyBlank("foo", "bar")     = false
379
     * </pre>
380
     *
381
     * @param css  the CharSequences to check, may be null or empty
382
     * @return {@code true} if any of the CharSequences are blank or null or whitespace only
383
     * @since 3.2
384
     */
385
    public static boolean isAnyBlank(final CharSequence... css) {
386 1 1. isAnyBlank : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
387 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
388
      }
389 3 1. isAnyBlank : changed conditional boundary → KILLED
2. isAnyBlank : Changed increment from 1 to -1 → KILLED
3. isAnyBlank : negated conditional → KILLED
      for (final CharSequence cs : css){
390 1 1. isAnyBlank : negated conditional → KILLED
        if (isBlank(cs)) {
391 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
392
        }
393
      }
394 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
395
    }
396
397
    /**
398
     * <p>Checks if any one of the CharSequences are not blank ("") or null and not whitespace only.</p>
399
     * 
400
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
401
     *
402
     * <pre>
403
     * StringUtils.isAnyNotBlank(null)             = false
404
     * StringUtils.isAnyNotBlank(null, "foo")      = true
405
     * StringUtils.isAnyNotBlank(null, null)       = false
406
     * StringUtils.isAnyNotBlank("", "bar")        = true
407
     * StringUtils.isAnyNotBlank("bob", "")        = true
408
     * StringUtils.isAnyNotBlank("  bob  ", null)  = true
409
     * StringUtils.isAnyNotBlank(" ", "bar")       = true
410
     * StringUtils.isAnyNotBlank("foo", "bar")     = false
411
     * </pre>
412
     *
413
     * @param css  the CharSequences to check, may be null or empty
414
     * @return {@code true} if any of the CharSequences are not blank or null or whitespace only
415
     * @since 3.6
416
     */
417
    public static boolean isAnyNotBlank(final CharSequence... css) {
418 1 1. isAnyNotBlank : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
419 1 1. isAnyNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
420
      }
421 3 1. isAnyNotBlank : changed conditional boundary → KILLED
2. isAnyNotBlank : Changed increment from 1 to -1 → KILLED
3. isAnyNotBlank : negated conditional → KILLED
      for (final CharSequence cs : css) {
422 1 1. isAnyNotBlank : negated conditional → KILLED
        if (isNotBlank(cs)) {
423 1 1. isAnyNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
424
        }
425
      }
426 1 1. isAnyNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
427
    }
428
429
    /**
430
     * <p>Checks if none of the CharSequences are blank ("") or null and whitespace only.</p>
431
     * 
432
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
433
     *
434
     * <pre>
435
     * StringUtils.isNoneBlank(null)             = false
436
     * StringUtils.isNoneBlank(null, "foo")      = false
437
     * StringUtils.isNoneBlank(null, null)       = false
438
     * StringUtils.isNoneBlank("", "bar")        = false
439
     * StringUtils.isNoneBlank("bob", "")        = false
440
     * StringUtils.isNoneBlank("  bob  ", null)  = false
441
     * StringUtils.isNoneBlank(" ", "bar")       = false
442
     * StringUtils.isNoneBlank("foo", "bar")     = true
443
     * </pre>
444
     *
445
     * @param css  the CharSequences to check, may be null or empty
446
     * @return {@code true} if none of the CharSequences are blank or null or whitespace only
447
     * @since 3.2
448
     */
449
    public static boolean isNoneBlank(final CharSequence... css) {
450 2 1. isNoneBlank : negated conditional → KILLED
2. isNoneBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return !isAnyBlank(css);
451
    }
452
453
    // Trim
454
    //-----------------------------------------------------------------------
455
    /**
456
     * <p>Removes control characters (char &lt;= 32) from both
457
     * ends of this String, handling {@code null} by returning
458
     * {@code null}.</p>
459
     *
460
     * <p>The String is trimmed using {@link String#trim()}.
461
     * Trim removes start and end characters &lt;= 32.
462
     * To strip whitespace use {@link #strip(String)}.</p>
463
     *
464
     * <p>To trim your choice of characters, use the
465
     * {@link #strip(String, String)} methods.</p>
466
     *
467
     * <pre>
468
     * StringUtils.trim(null)          = null
469
     * StringUtils.trim("")            = ""
470
     * StringUtils.trim("     ")       = ""
471
     * StringUtils.trim("abc")         = "abc"
472
     * StringUtils.trim("    abc    ") = "abc"
473
     * </pre>
474
     *
475
     * @param str  the String to be trimmed, may be null
476
     * @return the trimmed string, {@code null} if null String input
477
     */
478
    public static String trim(final String str) {
479 2 1. trim : negated conditional → KILLED
2. trim : mutated return of Object value for org/apache/commons/lang3/StringUtils::trim to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? null : str.trim();
480
    }
481
482
    /**
483
     * <p>Removes control characters (char &lt;= 32) from both
484
     * ends of this String returning {@code null} if the String is
485
     * empty ("") after the trim or if it is {@code null}.
486
     *
487
     * <p>The String is trimmed using {@link String#trim()}.
488
     * Trim removes start and end characters &lt;= 32.
489
     * To strip whitespace use {@link #stripToNull(String)}.</p>
490
     *
491
     * <pre>
492
     * StringUtils.trimToNull(null)          = null
493
     * StringUtils.trimToNull("")            = null
494
     * StringUtils.trimToNull("     ")       = null
495
     * StringUtils.trimToNull("abc")         = "abc"
496
     * StringUtils.trimToNull("    abc    ") = "abc"
497
     * </pre>
498
     *
499
     * @param str  the String to be trimmed, may be null
500
     * @return the trimmed String,
501
     *  {@code null} if only chars &lt;= 32, empty or null String input
502
     * @since 2.0
503
     */
504
    public static String trimToNull(final String str) {
505
        final String ts = trim(str);
506 2 1. trimToNull : negated conditional → KILLED
2. trimToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isEmpty(ts) ? null : ts;
507
    }
508
509
    /**
510
     * <p>Removes control characters (char &lt;= 32) from both
511
     * ends of this String returning an empty String ("") if the String
512
     * is empty ("") after the trim or if it is {@code null}.
513
     *
514
     * <p>The String is trimmed using {@link String#trim()}.
515
     * Trim removes start and end characters &lt;= 32.
516
     * To strip whitespace use {@link #stripToEmpty(String)}.</p>
517
     *
518
     * <pre>
519
     * StringUtils.trimToEmpty(null)          = ""
520
     * StringUtils.trimToEmpty("")            = ""
521
     * StringUtils.trimToEmpty("     ")       = ""
522
     * StringUtils.trimToEmpty("abc")         = "abc"
523
     * StringUtils.trimToEmpty("    abc    ") = "abc"
524
     * </pre>
525
     *
526
     * @param str  the String to be trimmed, may be null
527
     * @return the trimmed String, or an empty String if {@code null} input
528
     * @since 2.0
529
     */
530
    public static String trimToEmpty(final String str) {
531 2 1. trimToEmpty : negated conditional → KILLED
2. trimToEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : str.trim();
532
    }
533
534
    /**
535
     * <p>Truncates a String. This will turn
536
     * "Now is the time for all good men" into "Now is the time for".</p>
537
     *
538
     * <p>Specifically:</p>
539
     * <ul>
540
     *   <li>If {@code str} is less than {@code maxWidth} characters
541
     *       long, return it.</li>
542
     *   <li>Else truncate it to {@code substring(str, 0, maxWidth)}.</li>
543
     *   <li>If {@code maxWidth} is less than {@code 0}, throw an
544
     *       {@code IllegalArgumentException}.</li>
545
     *   <li>In no case will it return a String of length greater than
546
     *       {@code maxWidth}.</li>
547
     * </ul>
548
     *
549
     * <pre>
550
     * StringUtils.truncate(null, 0)       = null
551
     * StringUtils.truncate(null, 2)       = null
552
     * StringUtils.truncate("", 4)         = ""
553
     * StringUtils.truncate("abcdefg", 4)  = "abcd"
554
     * StringUtils.truncate("abcdefg", 6)  = "abcdef"
555
     * StringUtils.truncate("abcdefg", 7)  = "abcdefg"
556
     * StringUtils.truncate("abcdefg", 8)  = "abcdefg"
557
     * StringUtils.truncate("abcdefg", -1) = throws an IllegalArgumentException
558
     * </pre>
559
     *
560
     * @param str  the String to truncate, may be null
561
     * @param maxWidth  maximum length of result String, must be positive
562
     * @return truncated String, {@code null} if null String input
563
     * @since 3.5
564
     */
565
    public static String truncate(final String str, final int maxWidth) {
566 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return truncate(str, 0, maxWidth);
567
    }
568
569
    /**
570
     * <p>Truncates a String. This will turn
571
     * "Now is the time for all good men" into "is the time for all".</p>
572
     *
573
     * <p>Works like {@code truncate(String, int)}, but allows you to specify
574
     * a "left edge" offset.
575
     *
576
     * <p>Specifically:</p>
577
     * <ul>
578
     *   <li>If {@code str} is less than {@code maxWidth} characters
579
     *       long, return it.</li>
580
     *   <li>Else truncate it to {@code substring(str, offset, maxWidth)}.</li>
581
     *   <li>If {@code maxWidth} is less than {@code 0}, throw an
582
     *       {@code IllegalArgumentException}.</li>
583
     *   <li>If {@code offset} is less than {@code 0}, throw an
584
     *       {@code IllegalArgumentException}.</li>
585
     *   <li>In no case will it return a String of length greater than
586
     *       {@code maxWidth}.</li>
587
     * </ul>
588
     *
589
     * <pre>
590
     * StringUtils.truncate(null, 0, 0) = null
591
     * StringUtils.truncate(null, 2, 4) = null
592
     * StringUtils.truncate("", 0, 10) = ""
593
     * StringUtils.truncate("", 2, 10) = ""
594
     * StringUtils.truncate("abcdefghij", 0, 3) = "abc"
595
     * StringUtils.truncate("abcdefghij", 5, 6) = "fghij"
596
     * StringUtils.truncate("raspberry peach", 10, 15) = "peach"
597
     * StringUtils.truncate("abcdefghijklmno", 0, 10) = "abcdefghij"
598
     * StringUtils.truncate("abcdefghijklmno", -1, 10) = throws an IllegalArgumentException
599
     * StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, 10) = "abcdefghij"
600
     * StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, Integer.MAX_VALUE) = "abcdefghijklmno"
601
     * StringUtils.truncate("abcdefghijklmno", 0, Integer.MAX_VALUE) = "abcdefghijklmno"
602
     * StringUtils.truncate("abcdefghijklmno", 1, 10) = "bcdefghijk"
603
     * StringUtils.truncate("abcdefghijklmno", 2, 10) = "cdefghijkl"
604
     * StringUtils.truncate("abcdefghijklmno", 3, 10) = "defghijklm"
605
     * StringUtils.truncate("abcdefghijklmno", 4, 10) = "efghijklmn"
606
     * StringUtils.truncate("abcdefghijklmno", 5, 10) = "fghijklmno"
607
     * StringUtils.truncate("abcdefghijklmno", 5, 5) = "fghij"
608
     * StringUtils.truncate("abcdefghijklmno", 5, 3) = "fgh"
609
     * StringUtils.truncate("abcdefghijklmno", 10, 3) = "klm"
610
     * StringUtils.truncate("abcdefghijklmno", 10, Integer.MAX_VALUE) = "klmno"
611
     * StringUtils.truncate("abcdefghijklmno", 13, 1) = "n"
612
     * StringUtils.truncate("abcdefghijklmno", 13, Integer.MAX_VALUE) = "no"
613
     * StringUtils.truncate("abcdefghijklmno", 14, 1) = "o"
614
     * StringUtils.truncate("abcdefghijklmno", 14, Integer.MAX_VALUE) = "o"
615
     * StringUtils.truncate("abcdefghijklmno", 15, 1) = ""
616
     * StringUtils.truncate("abcdefghijklmno", 15, Integer.MAX_VALUE) = ""
617
     * StringUtils.truncate("abcdefghijklmno", Integer.MAX_VALUE, Integer.MAX_VALUE) = ""
618
     * StringUtils.truncate("abcdefghij", 3, -1) = throws an IllegalArgumentException
619
     * StringUtils.truncate("abcdefghij", -2, 4) = throws an IllegalArgumentException
620
     * </pre>
621
     *
622
     * @param str  the String to check, may be null
623
     * @param offset  left edge of source String
624
     * @param maxWidth  maximum length of result String, must be positive
625
     * @return truncated String, {@code null} if null String input
626
     * @since 3.5
627
     */
628
    public static String truncate(final String str, final int offset, final int maxWidth) {
629 2 1. truncate : changed conditional boundary → KILLED
2. truncate : negated conditional → KILLED
        if (offset < 0) {
630
            throw new IllegalArgumentException("offset cannot be negative");
631
        }
632 2 1. truncate : changed conditional boundary → KILLED
2. truncate : negated conditional → KILLED
        if (maxWidth < 0) {
633
            throw new IllegalArgumentException("maxWith cannot be negative");
634
        }
635 1 1. truncate : negated conditional → KILLED
        if (str == null) {
636 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
637
        }
638 2 1. truncate : changed conditional boundary → SURVIVED
2. truncate : negated conditional → KILLED
        if (offset > str.length()) {
639 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
640
        }
641 2 1. truncate : changed conditional boundary → SURVIVED
2. truncate : negated conditional → KILLED
        if (str.length() > maxWidth) {
642 4 1. truncate : changed conditional boundary → SURVIVED
2. truncate : Replaced integer addition with subtraction → KILLED
3. truncate : Replaced integer addition with subtraction → KILLED
4. truncate : negated conditional → KILLED
            final int ix = offset + maxWidth > str.length() ? str.length() : offset + maxWidth;
643 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(offset, ix);
644
        }
645 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(offset);
646
    }
647
648
    // Stripping
649
    //-----------------------------------------------------------------------
650
    /**
651
     * <p>Strips whitespace from the start and end of a String.</p>
652
     *
653
     * <p>This is similar to {@link #trim(String)} but removes whitespace.
654
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
655
     *
656
     * <p>A {@code null} input String returns {@code null}.</p>
657
     *
658
     * <pre>
659
     * StringUtils.strip(null)     = null
660
     * StringUtils.strip("")       = ""
661
     * StringUtils.strip("   ")    = ""
662
     * StringUtils.strip("abc")    = "abc"
663
     * StringUtils.strip("  abc")  = "abc"
664
     * StringUtils.strip("abc  ")  = "abc"
665
     * StringUtils.strip(" abc ")  = "abc"
666
     * StringUtils.strip(" ab c ") = "ab c"
667
     * </pre>
668
     *
669
     * @param str  the String to remove whitespace from, may be null
670
     * @return the stripped String, {@code null} if null String input
671
     */
672
    public static String strip(final String str) {
673 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return strip(str, null);
674
    }
675
676
    /**
677
     * <p>Strips whitespace from the start and end of a String  returning
678
     * {@code null} if the String is empty ("") after the strip.</p>
679
     *
680
     * <p>This is similar to {@link #trimToNull(String)} but removes whitespace.
681
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
682
     *
683
     * <pre>
684
     * StringUtils.stripToNull(null)     = null
685
     * StringUtils.stripToNull("")       = null
686
     * StringUtils.stripToNull("   ")    = null
687
     * StringUtils.stripToNull("abc")    = "abc"
688
     * StringUtils.stripToNull("  abc")  = "abc"
689
     * StringUtils.stripToNull("abc  ")  = "abc"
690
     * StringUtils.stripToNull(" abc ")  = "abc"
691
     * StringUtils.stripToNull(" ab c ") = "ab c"
692
     * </pre>
693
     *
694
     * @param str  the String to be stripped, may be null
695
     * @return the stripped String,
696
     *  {@code null} if whitespace, empty or null String input
697
     * @since 2.0
698
     */
699
    public static String stripToNull(String str) {
700 1 1. stripToNull : negated conditional → KILLED
        if (str == null) {
701 1 1. stripToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
702
        }
703
        str = strip(str, null);
704 2 1. stripToNull : negated conditional → KILLED
2. stripToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.isEmpty() ? null : str;
705
    }
706
707
    /**
708
     * <p>Strips whitespace from the start and end of a String  returning
709
     * an empty String if {@code null} input.</p>
710
     *
711
     * <p>This is similar to {@link #trimToEmpty(String)} but removes whitespace.
712
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
713
     *
714
     * <pre>
715
     * StringUtils.stripToEmpty(null)     = ""
716
     * StringUtils.stripToEmpty("")       = ""
717
     * StringUtils.stripToEmpty("   ")    = ""
718
     * StringUtils.stripToEmpty("abc")    = "abc"
719
     * StringUtils.stripToEmpty("  abc")  = "abc"
720
     * StringUtils.stripToEmpty("abc  ")  = "abc"
721
     * StringUtils.stripToEmpty(" abc ")  = "abc"
722
     * StringUtils.stripToEmpty(" ab c ") = "ab c"
723
     * </pre>
724
     *
725
     * @param str  the String to be stripped, may be null
726
     * @return the trimmed String, or an empty String if {@code null} input
727
     * @since 2.0
728
     */
729
    public static String stripToEmpty(final String str) {
730 2 1. stripToEmpty : negated conditional → KILLED
2. stripToEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : strip(str, null);
731
    }
732
733
    /**
734
     * <p>Strips any of a set of characters from the start and end of a String.
735
     * This is similar to {@link String#trim()} but allows the characters
736
     * to be stripped to be controlled.</p>
737
     *
738
     * <p>A {@code null} input String returns {@code null}.
739
     * An empty string ("") input returns the empty string.</p>
740
     *
741
     * <p>If the stripChars String is {@code null}, whitespace is
742
     * stripped as defined by {@link Character#isWhitespace(char)}.
743
     * Alternatively use {@link #strip(String)}.</p>
744
     *
745
     * <pre>
746
     * StringUtils.strip(null, *)          = null
747
     * StringUtils.strip("", *)            = ""
748
     * StringUtils.strip("abc", null)      = "abc"
749
     * StringUtils.strip("  abc", null)    = "abc"
750
     * StringUtils.strip("abc  ", null)    = "abc"
751
     * StringUtils.strip(" abc ", null)    = "abc"
752
     * StringUtils.strip("  abcyx", "xyz") = "  abc"
753
     * </pre>
754
     *
755
     * @param str  the String to remove characters from, may be null
756
     * @param stripChars  the characters to remove, null treated as whitespace
757
     * @return the stripped String, {@code null} if null String input
758
     */
759
    public static String strip(String str, final String stripChars) {
760 1 1. strip : negated conditional → KILLED
        if (isEmpty(str)) {
761 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
762
        }
763
        str = stripStart(str, stripChars);
764 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return stripEnd(str, stripChars);
765
    }
766
    
767
    /**
768
     * <p>Strips any of a set of characters from the start of a String.</p>
769
     *
770
     * <p>A {@code null} input String returns {@code null}.
771
     * An empty string ("") input returns the empty string.</p>
772
     *
773
     * <p>If the stripChars String is {@code null}, whitespace is
774
     * stripped as defined by {@link Character#isWhitespace(char)}.</p>
775
     *
776
     * <pre>
777
     * StringUtils.stripStart(null, *)          = null
778
     * StringUtils.stripStart("", *)            = ""
779
     * StringUtils.stripStart("abc", "")        = "abc"
780
     * StringUtils.stripStart("abc", null)      = "abc"
781
     * StringUtils.stripStart("  abc", null)    = "abc"
782
     * StringUtils.stripStart("abc  ", null)    = "abc  "
783
     * StringUtils.stripStart(" abc ", null)    = "abc "
784
     * StringUtils.stripStart("yxabc  ", "xyz") = "abc  "
785
     * </pre>
786
     *
787
     * @param str  the String to remove characters from, may be null
788
     * @param stripChars  the characters to remove, null treated as whitespace
789
     * @return the stripped String, {@code null} if null String input
790
     */
791
    public static String stripStart(final String str, final String stripChars) {
792
        int strLen;
793 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
794 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
795
        }
796
        int start = 0;
797 1 1. stripStart : negated conditional → KILLED
        if (stripChars == null) {
798 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
            while (start != strLen && Character.isWhitespace(str.charAt(start))) {
799 1 1. stripStart : Changed increment from 1 to -1 → KILLED
                start++;
800
            }
801 1 1. stripStart : negated conditional → KILLED
        } else if (stripChars.isEmpty()) {
802 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
803
        } else {
804 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
            while (start != strLen && stripChars.indexOf(str.charAt(start)) != INDEX_NOT_FOUND) {
805 1 1. stripStart : Changed increment from 1 to -1 → KILLED
                start++;
806
            }
807
        }
808 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start);
809
    }
810
811
    /**
812
     * <p>Strips any of a set of characters from the end of a String.</p>
813
     *
814
     * <p>A {@code null} input String returns {@code null}.
815
     * An empty string ("") input returns the empty string.</p>
816
     *
817
     * <p>If the stripChars String is {@code null}, whitespace is
818
     * stripped as defined by {@link Character#isWhitespace(char)}.</p>
819
     *
820
     * <pre>
821
     * StringUtils.stripEnd(null, *)          = null
822
     * StringUtils.stripEnd("", *)            = ""
823
     * StringUtils.stripEnd("abc", "")        = "abc"
824
     * StringUtils.stripEnd("abc", null)      = "abc"
825
     * StringUtils.stripEnd("  abc", null)    = "  abc"
826
     * StringUtils.stripEnd("abc  ", null)    = "abc"
827
     * StringUtils.stripEnd(" abc ", null)    = " abc"
828
     * StringUtils.stripEnd("  abcyx", "xyz") = "  abc"
829
     * StringUtils.stripEnd("120.00", ".0")   = "12"
830
     * </pre>
831
     *
832
     * @param str  the String to remove characters from, may be null
833
     * @param stripChars  the set of characters to remove, null treated as whitespace
834
     * @return the stripped String, {@code null} if null String input
835
     */
836
    public static String stripEnd(final String str, final String stripChars) {
837
        int end;
838 2 1. stripEnd : negated conditional → KILLED
2. stripEnd : negated conditional → KILLED
        if (str == null || (end = str.length()) == 0) {
839 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
840
        }
841
842 1 1. stripEnd : negated conditional → KILLED
        if (stripChars == null) {
843 3 1. stripEnd : Replaced integer subtraction with addition → KILLED
2. stripEnd : negated conditional → KILLED
3. stripEnd : negated conditional → KILLED
            while (end != 0 && Character.isWhitespace(str.charAt(end - 1))) {
844 1 1. stripEnd : Changed increment from -1 to 1 → KILLED
                end--;
845
            }
846 1 1. stripEnd : negated conditional → KILLED
        } else if (stripChars.isEmpty()) {
847 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
848
        } else {
849 3 1. stripEnd : Replaced integer subtraction with addition → KILLED
2. stripEnd : negated conditional → KILLED
3. stripEnd : negated conditional → KILLED
            while (end != 0 && stripChars.indexOf(str.charAt(end - 1)) != INDEX_NOT_FOUND) {
850 1 1. stripEnd : Changed increment from -1 to 1 → KILLED
                end--;
851
            }
852
        }
853 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, end);
854
    }
855
856
    // StripAll
857
    //-----------------------------------------------------------------------
858
    /**
859
     * <p>Strips whitespace from the start and end of every String in an array.
860
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
861
     *
862
     * <p>A new array is returned each time, except for length zero.
863
     * A {@code null} array will return {@code null}.
864
     * An empty array will return itself.
865
     * A {@code null} array entry will be ignored.</p>
866
     *
867
     * <pre>
868
     * StringUtils.stripAll(null)             = null
869
     * StringUtils.stripAll([])               = []
870
     * StringUtils.stripAll(["abc", "  abc"]) = ["abc", "abc"]
871
     * StringUtils.stripAll(["abc  ", null])  = ["abc", null]
872
     * </pre>
873
     *
874
     * @param strs  the array to remove whitespace from, may be null
875
     * @return the stripped Strings, {@code null} if null array input
876
     */
877
    public static String[] stripAll(final String... strs) {
878 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return stripAll(strs, null);
879
    }
880
881
    /**
882
     * <p>Strips any of a set of characters from the start and end of every
883
     * String in an array.</p>
884
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
885
     *
886
     * <p>A new array is returned each time, except for length zero.
887
     * A {@code null} array will return {@code null}.
888
     * An empty array will return itself.
889
     * A {@code null} array entry will be ignored.
890
     * A {@code null} stripChars will strip whitespace as defined by
891
     * {@link Character#isWhitespace(char)}.</p>
892
     *
893
     * <pre>
894
     * StringUtils.stripAll(null, *)                = null
895
     * StringUtils.stripAll([], *)                  = []
896
     * StringUtils.stripAll(["abc", "  abc"], null) = ["abc", "abc"]
897
     * StringUtils.stripAll(["abc  ", null], null)  = ["abc", null]
898
     * StringUtils.stripAll(["abc  ", null], "yz")  = ["abc  ", null]
899
     * StringUtils.stripAll(["yabcz", null], "yz")  = ["abc", null]
900
     * </pre>
901
     *
902
     * @param strs  the array to remove characters from, may be null
903
     * @param stripChars  the characters to remove, null treated as whitespace
904
     * @return the stripped Strings, {@code null} if null array input
905
     */
906
    public static String[] stripAll(final String[] strs, final String stripChars) {
907
        int strsLen;
908 2 1. stripAll : negated conditional → KILLED
2. stripAll : negated conditional → KILLED
        if (strs == null || (strsLen = strs.length) == 0) {
909 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs;
910
        }
911
        final String[] newArr = new String[strsLen];
912 3 1. stripAll : changed conditional boundary → KILLED
2. stripAll : Changed increment from 1 to -1 → KILLED
3. stripAll : negated conditional → KILLED
        for (int i = 0; i < strsLen; i++) {
913
            newArr[i] = strip(strs[i], stripChars);
914
        }
915 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return newArr;
916
    }
917
918
    /**
919
     * <p>Removes diacritics (~= accents) from a string. The case will not be altered.</p>
920
     * <p>For instance, '&agrave;' will be replaced by 'a'.</p>
921
     * <p>Note that ligatures will be left as is.</p>
922
     *
923
     * <pre>
924
     * StringUtils.stripAccents(null)                = null
925
     * StringUtils.stripAccents("")                  = ""
926
     * StringUtils.stripAccents("control")           = "control"
927
     * StringUtils.stripAccents("&eacute;clair")     = "eclair"
928
     * </pre>
929
     *
930
     * @param input String to be stripped
931
     * @return input text with diacritics removed
932
     *
933
     * @since 3.0
934
     */
935
    // See also Lucene's ASCIIFoldingFilter (Lucene 2.9) that replaces accented characters by their unaccented equivalent (and uncommitted bug fix: https://issues.apache.org/jira/browse/LUCENE-1343?focusedCommentId=12858907&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12858907).
936
    public static String stripAccents(final String input) {
937 1 1. stripAccents : negated conditional → KILLED
        if(input == null) {
938 1 1. stripAccents : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
939
        }
940
        final Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");//$NON-NLS-1$
941
        final StringBuilder decomposed = new StringBuilder(Normalizer.normalize(input, Normalizer.Form.NFD));
942 1 1. stripAccents : removed call to org/apache/commons/lang3/StringUtils::convertRemainingAccentCharacters → KILLED
        convertRemainingAccentCharacters(decomposed);
943
        // Note that this doesn't correctly remove ligatures...
944 1 1. stripAccents : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return pattern.matcher(decomposed).replaceAll(StringUtils.EMPTY);
945
    }
946
947
    private static void convertRemainingAccentCharacters(final StringBuilder decomposed) {
948 3 1. convertRemainingAccentCharacters : changed conditional boundary → KILLED
2. convertRemainingAccentCharacters : Changed increment from 1 to -1 → KILLED
3. convertRemainingAccentCharacters : negated conditional → KILLED
        for (int i = 0; i < decomposed.length(); i++) {
949 1 1. convertRemainingAccentCharacters : negated conditional → KILLED
            if (decomposed.charAt(i) == '\u0141') {
950
                decomposed.deleteCharAt(i);
951
                decomposed.insert(i, 'L');
952 1 1. convertRemainingAccentCharacters : negated conditional → KILLED
            } else if (decomposed.charAt(i) == '\u0142') {
953
                decomposed.deleteCharAt(i);
954
                decomposed.insert(i, 'l');
955
            }
956
        }
957
    }
958
959
    // Equals
960
    //-----------------------------------------------------------------------
961
    /**
962
     * <p>Compares two CharSequences, returning {@code true} if they represent
963
     * equal sequences of characters.</p>
964
     *
965
     * <p>{@code null}s are handled without exceptions. Two {@code null}
966
     * references are considered to be equal. The comparison is case sensitive.</p>
967
     *
968
     * <pre>
969
     * StringUtils.equals(null, null)   = true
970
     * StringUtils.equals(null, "abc")  = false
971
     * StringUtils.equals("abc", null)  = false
972
     * StringUtils.equals("abc", "abc") = true
973
     * StringUtils.equals("abc", "ABC") = false
974
     * </pre>
975
     *
976
     * @see Object#equals(Object)
977
     * @param cs1  the first CharSequence, may be {@code null}
978
     * @param cs2  the second CharSequence, may be {@code null}
979
     * @return {@code true} if the CharSequences are equal (case-sensitive), or both {@code null}
980
     * @since 3.0 Changed signature from equals(String, String) to equals(CharSequence, CharSequence)
981
     */
982
    public static boolean equals(final CharSequence cs1, final CharSequence cs2) {
983 1 1. equals : negated conditional → KILLED
        if (cs1 == cs2) {
984 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
985
        }
986 2 1. equals : negated conditional → KILLED
2. equals : negated conditional → KILLED
        if (cs1 == null || cs2 == null) {
987 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
988
        }
989 1 1. equals : negated conditional → KILLED
        if (cs1.length() != cs2.length()) {
990 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
991
        }
992 2 1. equals : negated conditional → KILLED
2. equals : negated conditional → KILLED
        if (cs1 instanceof String && cs2 instanceof String) {
993 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return cs1.equals(cs2);
994
        }
995 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(cs1, false, 0, cs2, 0, cs1.length());
996
    }
997
998
    /**
999
     * <p>Compares two CharSequences, returning {@code true} if they represent
1000
     * equal sequences of characters, ignoring case.</p>
1001
     *
1002
     * <p>{@code null}s are handled without exceptions. Two {@code null}
1003
     * references are considered equal. Comparison is case insensitive.</p>
1004
     *
1005
     * <pre>
1006
     * StringUtils.equalsIgnoreCase(null, null)   = true
1007
     * StringUtils.equalsIgnoreCase(null, "abc")  = false
1008
     * StringUtils.equalsIgnoreCase("abc", null)  = false
1009
     * StringUtils.equalsIgnoreCase("abc", "abc") = true
1010
     * StringUtils.equalsIgnoreCase("abc", "ABC") = true
1011
     * </pre>
1012
     *
1013
     * @param str1  the first CharSequence, may be null
1014
     * @param str2  the second CharSequence, may be null
1015
     * @return {@code true} if the CharSequence are equal, case insensitive, or
1016
     *  both {@code null}
1017
     * @since 3.0 Changed signature from equalsIgnoreCase(String, String) to equalsIgnoreCase(CharSequence, CharSequence)
1018
     */
1019
    public static boolean equalsIgnoreCase(final CharSequence str1, final CharSequence str2) {
1020 2 1. equalsIgnoreCase : negated conditional → KILLED
2. equalsIgnoreCase : negated conditional → KILLED
        if (str1 == null || str2 == null) {
1021 2 1. equalsIgnoreCase : negated conditional → KILLED
2. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str1 == str2;
1022 1 1. equalsIgnoreCase : negated conditional → KILLED
        } else if (str1 == str2) {
1023 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
1024 1 1. equalsIgnoreCase : negated conditional → KILLED
        } else if (str1.length() != str2.length()) {
1025 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1026
        } else {
1027 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return CharSequenceUtils.regionMatches(str1, true, 0, str2, 0, str1.length());
1028
        }
1029
    }
1030
1031
    // Compare
1032
    //-----------------------------------------------------------------------
1033
    /**
1034
     * <p>Compare two Strings lexicographically, as per {@link String#compareTo(String)}, returning :</p>
1035
     * <ul>
1036
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1037
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1038
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1039
     * </ul>
1040
     *
1041
     * <p>This is a {@code null} safe version of :</p>
1042
     * <blockquote><pre>str1.compareTo(str2)</pre></blockquote>
1043
     *
1044
     * <p>{@code null} value is considered less than non-{@code null} value.
1045
     * Two {@code null} references are considered equal.</p>
1046
     *
1047
     * <pre>
1048
     * StringUtils.compare(null, null)   = 0
1049
     * StringUtils.compare(null , "a")   &lt; 0
1050
     * StringUtils.compare("a", null)    &gt; 0
1051
     * StringUtils.compare("abc", "abc") = 0
1052
     * StringUtils.compare("a", "b")     &lt; 0
1053
     * StringUtils.compare("b", "a")     &gt; 0
1054
     * StringUtils.compare("a", "B")     &gt; 0
1055
     * StringUtils.compare("ab", "abc")  &lt; 0
1056
     * </pre>
1057
     *
1058
     * @see #compare(String, String, boolean)
1059
     * @see String#compareTo(String)
1060
     * @param str1  the String to compare from
1061
     * @param str2  the String to compare to
1062
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2}
1063
     * @since 3.5
1064
     */
1065
    public static int compare(final String str1, final String str2) {
1066 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return compare(str1, str2, true);
1067
    }
1068
1069
    /**
1070
     * <p>Compare two Strings lexicographically, as per {@link String#compareTo(String)}, returning :</p>
1071
     * <ul>
1072
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1073
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1074
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1075
     * </ul>
1076
     *
1077
     * <p>This is a {@code null} safe version of :</p>
1078
     * <blockquote><pre>str1.compareTo(str2)</pre></blockquote>
1079
     *
1080
     * <p>{@code null} inputs are handled according to the {@code nullIsLess} parameter.
1081
     * Two {@code null} references are considered equal.</p>
1082
     *
1083
     * <pre>
1084
     * StringUtils.compare(null, null, *)     = 0
1085
     * StringUtils.compare(null , "a", true)  &lt; 0
1086
     * StringUtils.compare(null , "a", false) &gt; 0
1087
     * StringUtils.compare("a", null, true)   &gt; 0
1088
     * StringUtils.compare("a", null, false)  &lt; 0
1089
     * StringUtils.compare("abc", "abc", *)   = 0
1090
     * StringUtils.compare("a", "b", *)       &lt; 0
1091
     * StringUtils.compare("b", "a", *)       &gt; 0
1092
     * StringUtils.compare("a", "B", *)       &gt; 0
1093
     * StringUtils.compare("ab", "abc", *)    &lt; 0
1094
     * </pre>
1095
     *
1096
     * @see String#compareTo(String)
1097
     * @param str1  the String to compare from
1098
     * @param str2  the String to compare to
1099
     * @param nullIsLess  whether consider {@code null} value less than non-{@code null} value
1100
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2}
1101
     * @since 3.5
1102
     */
1103
    public static int compare(final String str1, final String str2, final boolean nullIsLess) {
1104 1 1. compare : negated conditional → KILLED
        if (str1 == str2) {
1105 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
1106
        }
1107 1 1. compare : negated conditional → KILLED
        if (str1 == null) {
1108 2 1. compare : negated conditional → KILLED
2. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? -1 : 1;
1109
        }
1110 1 1. compare : negated conditional → KILLED
        if (str2 == null) {
1111 2 1. compare : negated conditional → KILLED
2. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? 1 : - 1;
1112
        }
1113 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return str1.compareTo(str2);
1114
    }
1115
1116
    /**
1117
     * <p>Compare two Strings lexicographically, ignoring case differences,
1118
     * as per {@link String#compareToIgnoreCase(String)}, returning :</p>
1119
     * <ul>
1120
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1121
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1122
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1123
     * </ul>
1124
     *
1125
     * <p>This is a {@code null} safe version of :</p>
1126
     * <blockquote><pre>str1.compareToIgnoreCase(str2)</pre></blockquote>
1127
     *
1128
     * <p>{@code null} value is considered less than non-{@code null} value.
1129
     * Two {@code null} references are considered equal.
1130
     * Comparison is case insensitive.</p>
1131
     *
1132
     * <pre>
1133
     * StringUtils.compareIgnoreCase(null, null)   = 0
1134
     * StringUtils.compareIgnoreCase(null , "a")   &lt; 0
1135
     * StringUtils.compareIgnoreCase("a", null)    &gt; 0
1136
     * StringUtils.compareIgnoreCase("abc", "abc") = 0
1137
     * StringUtils.compareIgnoreCase("abc", "ABC") = 0
1138
     * StringUtils.compareIgnoreCase("a", "b")     &lt; 0
1139
     * StringUtils.compareIgnoreCase("b", "a")     &gt; 0
1140
     * StringUtils.compareIgnoreCase("a", "B")     &lt; 0
1141
     * StringUtils.compareIgnoreCase("A", "b")     &lt; 0
1142
     * StringUtils.compareIgnoreCase("ab", "ABC")  &lt; 0
1143
     * </pre>
1144
     *
1145
     * @see #compareIgnoreCase(String, String, boolean)
1146
     * @see String#compareToIgnoreCase(String)
1147
     * @param str1  the String to compare from
1148
     * @param str2  the String to compare to
1149
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2},
1150
     *          ignoring case differences.
1151
     * @since 3.5
1152
     */
1153
    public static int compareIgnoreCase(final String str1, final String str2) {
1154 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return compareIgnoreCase(str1, str2, true);
1155
    }
1156
1157
    /**
1158
     * <p>Compare two Strings lexicographically, ignoring case differences,
1159
     * as per {@link String#compareToIgnoreCase(String)}, returning :</p>
1160
     * <ul>
1161
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1162
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1163
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1164
     * </ul>
1165
     *
1166
     * <p>This is a {@code null} safe version of :</p>
1167
     * <blockquote><pre>str1.compareToIgnoreCase(str2)</pre></blockquote>
1168
     *
1169
     * <p>{@code null} inputs are handled according to the {@code nullIsLess} parameter.
1170
     * Two {@code null} references are considered equal.
1171
     * Comparison is case insensitive.</p>
1172
     *
1173
     * <pre>
1174
     * StringUtils.compareIgnoreCase(null, null, *)     = 0
1175
     * StringUtils.compareIgnoreCase(null , "a", true)  &lt; 0
1176
     * StringUtils.compareIgnoreCase(null , "a", false) &gt; 0
1177
     * StringUtils.compareIgnoreCase("a", null, true)   &gt; 0
1178
     * StringUtils.compareIgnoreCase("a", null, false)  &lt; 0
1179
     * StringUtils.compareIgnoreCase("abc", "abc", *)   = 0
1180
     * StringUtils.compareIgnoreCase("abc", "ABC", *)   = 0
1181
     * StringUtils.compareIgnoreCase("a", "b", *)       &lt; 0
1182
     * StringUtils.compareIgnoreCase("b", "a", *)       &gt; 0
1183
     * StringUtils.compareIgnoreCase("a", "B", *)       &lt; 0
1184
     * StringUtils.compareIgnoreCase("A", "b", *)       &lt; 0
1185
     * StringUtils.compareIgnoreCase("ab", "abc", *)    &lt; 0
1186
     * </pre>
1187
     *
1188
     * @see String#compareToIgnoreCase(String)
1189
     * @param str1  the String to compare from
1190
     * @param str2  the String to compare to
1191
     * @param nullIsLess  whether consider {@code null} value less than non-{@code null} value
1192
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2},
1193
     *          ignoring case differences.
1194
     * @since 3.5
1195
     */
1196
    public static int compareIgnoreCase(final String str1, final String str2, final boolean nullIsLess) {
1197 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str1 == str2) {
1198 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
1199
        }
1200 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str1 == null) {
1201 2 1. compareIgnoreCase : negated conditional → KILLED
2. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? -1 : 1;
1202
        }
1203 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str2 == null) {
1204 2 1. compareIgnoreCase : negated conditional → KILLED
2. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? 1 : - 1;
1205
        }
1206 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return str1.compareToIgnoreCase(str2);
1207
    }
1208
1209
    /**
1210
     * <p>Compares given <code>string</code> to a CharSequences vararg of <code>searchStrings</code>,
1211
     * returning {@code true} if the <code>string</code> is equal to any of the <code>searchStrings</code>.</p>
1212
     *
1213
     * <pre>
1214
     * StringUtils.equalsAny(null, (CharSequence[]) null) = false
1215
     * StringUtils.equalsAny(null, null, null)    = true
1216
     * StringUtils.equalsAny(null, "abc", "def")  = false
1217
     * StringUtils.equalsAny("abc", null, "def")  = false
1218
     * StringUtils.equalsAny("abc", "abc", "def") = true
1219
     * StringUtils.equalsAny("abc", "ABC", "DEF") = false
1220
     * </pre>
1221
     *
1222
     * @param string to compare, may be {@code null}.
1223
     * @param searchStrings a vararg of strings, may be {@code null}.
1224
     * @return {@code true} if the string is equal (case-sensitive) to any other element of <code>searchStrings</code>;
1225
     * {@code false} if <code>searchStrings</code> is null or contains no matches.
1226
     * @since 3.5
1227
     */
1228
    public static boolean equalsAny(final CharSequence string, final CharSequence... searchStrings) {
1229 1 1. equalsAny : negated conditional → KILLED
        if (ArrayUtils.isNotEmpty(searchStrings)) {
1230 3 1. equalsAny : changed conditional boundary → KILLED
2. equalsAny : Changed increment from 1 to -1 → KILLED
3. equalsAny : negated conditional → KILLED
            for (final CharSequence next : searchStrings) {
1231 1 1. equalsAny : negated conditional → KILLED
                if (equals(string, next)) {
1232 1 1. equalsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return true;
1233
                }
1234
            }
1235
        }
1236 1 1. equalsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1237
    }
1238
1239
1240
    /**
1241
     * <p>Compares given <code>string</code> to a CharSequences vararg of <code>searchStrings</code>,
1242
     * returning {@code true} if the <code>string</code> is equal to any of the <code>searchStrings</code>, ignoring case.</p>
1243
     *
1244
     * <pre>
1245
     * StringUtils.equalsAnyIgnoreCase(null, (CharSequence[]) null) = false
1246
     * StringUtils.equalsAnyIgnoreCase(null, null, null)    = true
1247
     * StringUtils.equalsAnyIgnoreCase(null, "abc", "def")  = false
1248
     * StringUtils.equalsAnyIgnoreCase("abc", null, "def")  = false
1249
     * StringUtils.equalsAnyIgnoreCase("abc", "abc", "def") = true
1250
     * StringUtils.equalsAnyIgnoreCase("abc", "ABC", "DEF") = true
1251
     * </pre>
1252
     *
1253
     * @param string to compare, may be {@code null}.
1254
     * @param searchStrings a vararg of strings, may be {@code null}.
1255
     * @return {@code true} if the string is equal (case-insensitive) to any other element of <code>searchStrings</code>;
1256
     * {@code false} if <code>searchStrings</code> is null or contains no matches.
1257
     * @since 3.5
1258
     */
1259
    public static boolean equalsAnyIgnoreCase(final CharSequence string, final CharSequence...searchStrings) {
1260 1 1. equalsAnyIgnoreCase : negated conditional → KILLED
        if (ArrayUtils.isNotEmpty(searchStrings)) {
1261 3 1. equalsAnyIgnoreCase : changed conditional boundary → KILLED
2. equalsAnyIgnoreCase : Changed increment from 1 to -1 → KILLED
3. equalsAnyIgnoreCase : negated conditional → KILLED
            for (final CharSequence next : searchStrings) {
1262 1 1. equalsAnyIgnoreCase : negated conditional → KILLED
                if (equalsIgnoreCase(string, next)) {
1263 1 1. equalsAnyIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return true;
1264
                }
1265
            }
1266
        }
1267 1 1. equalsAnyIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1268
    }
1269
1270
    // IndexOf
1271
    //-----------------------------------------------------------------------
1272
    /**
1273
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1274
     * This method uses {@link String#indexOf(int, int)} if possible.</p>
1275
     *
1276
     * <p>A {@code null} or empty ("") CharSequence will return {@code INDEX_NOT_FOUND (-1)}.</p>
1277
     *
1278
     * <pre>
1279
     * StringUtils.indexOf(null, *)         = -1
1280
     * StringUtils.indexOf("", *)           = -1
1281
     * StringUtils.indexOf("aabaabaa", 'a') = 0
1282
     * StringUtils.indexOf("aabaabaa", 'b') = 2
1283
     * </pre>
1284
     *
1285
     * @param seq  the CharSequence to check, may be null
1286
     * @param searchChar  the character to find
1287
     * @return the first index of the search character,
1288
     *  -1 if no match or {@code null} string input
1289
     * @since 2.0
1290
     * @since 3.0 Changed signature from indexOf(String, int) to indexOf(CharSequence, int)
1291
     */
1292
    public static int indexOf(final CharSequence seq, final int searchChar) {
1293 1 1. indexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1294 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1295
        }
1296 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, 0);
1297
    }
1298
1299
    /**
1300
     * <p>Finds the first index within a CharSequence from a start position,
1301
     * handling {@code null}.
1302
     * This method uses {@link String#indexOf(int, int)} if possible.</p>
1303
     *
1304
     * <p>A {@code null} or empty ("") CharSequence will return {@code (INDEX_NOT_FOUND) -1}.
1305
     * A negative start position is treated as zero.
1306
     * A start position greater than the string length returns {@code -1}.</p>
1307
     *
1308
     * <pre>
1309
     * StringUtils.indexOf(null, *, *)          = -1
1310
     * StringUtils.indexOf("", *, *)            = -1
1311
     * StringUtils.indexOf("aabaabaa", 'b', 0)  = 2
1312
     * StringUtils.indexOf("aabaabaa", 'b', 3)  = 5
1313
     * StringUtils.indexOf("aabaabaa", 'b', 9)  = -1
1314
     * StringUtils.indexOf("aabaabaa", 'b', -1) = 2
1315
     * </pre>
1316
     *
1317
     * @param seq  the CharSequence to check, may be null
1318
     * @param searchChar  the character to find
1319
     * @param startPos  the start position, negative treated as zero
1320
     * @return the first index of the search character (always &ge; startPos),
1321
     *  -1 if no match or {@code null} string input
1322
     * @since 2.0
1323
     * @since 3.0 Changed signature from indexOf(String, int, int) to indexOf(CharSequence, int, int)
1324
     */
1325
    public static int indexOf(final CharSequence seq, final int searchChar, final int startPos) {
1326 1 1. indexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1327 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1328
        }
1329 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, startPos);
1330
    }
1331
1332
    /**
1333
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1334
     * This method uses {@link String#indexOf(String, int)} if possible.</p>
1335
     *
1336
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1337
     *
1338
     * <pre>
1339
     * StringUtils.indexOf(null, *)          = -1
1340
     * StringUtils.indexOf(*, null)          = -1
1341
     * StringUtils.indexOf("", "")           = 0
1342
     * StringUtils.indexOf("", *)            = -1 (except when * = "")
1343
     * StringUtils.indexOf("aabaabaa", "a")  = 0
1344
     * StringUtils.indexOf("aabaabaa", "b")  = 2
1345
     * StringUtils.indexOf("aabaabaa", "ab") = 1
1346
     * StringUtils.indexOf("aabaabaa", "")   = 0
1347
     * </pre>
1348
     *
1349
     * @param seq  the CharSequence to check, may be null
1350
     * @param searchSeq  the CharSequence to find, may be null
1351
     * @return the first index of the search CharSequence,
1352
     *  -1 if no match or {@code null} string input
1353
     * @since 2.0
1354
     * @since 3.0 Changed signature from indexOf(String, String) to indexOf(CharSequence, CharSequence)
1355
     */
1356
    public static int indexOf(final CharSequence seq, final CharSequence searchSeq) {
1357 2 1. indexOf : negated conditional → KILLED
2. indexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1358 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1359
        }
1360 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, 0);
1361
    }
1362
1363
    /**
1364
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1365
     * This method uses {@link String#indexOf(String, int)} if possible.</p>
1366
     *
1367
     * <p>A {@code null} CharSequence will return {@code -1}.
1368
     * A negative start position is treated as zero.
1369
     * An empty ("") search CharSequence always matches.
1370
     * A start position greater than the string length only matches
1371
     * an empty search CharSequence.</p>
1372
     *
1373
     * <pre>
1374
     * StringUtils.indexOf(null, *, *)          = -1
1375
     * StringUtils.indexOf(*, null, *)          = -1
1376
     * StringUtils.indexOf("", "", 0)           = 0
1377
     * StringUtils.indexOf("", *, 0)            = -1 (except when * = "")
1378
     * StringUtils.indexOf("aabaabaa", "a", 0)  = 0
1379
     * StringUtils.indexOf("aabaabaa", "b", 0)  = 2
1380
     * StringUtils.indexOf("aabaabaa", "ab", 0) = 1
1381
     * StringUtils.indexOf("aabaabaa", "b", 3)  = 5
1382
     * StringUtils.indexOf("aabaabaa", "b", 9)  = -1
1383
     * StringUtils.indexOf("aabaabaa", "b", -1) = 2
1384
     * StringUtils.indexOf("aabaabaa", "", 2)   = 2
1385
     * StringUtils.indexOf("abc", "", 9)        = 3
1386
     * </pre>
1387
     *
1388
     * @param seq  the CharSequence to check, may be null
1389
     * @param searchSeq  the CharSequence to find, may be null
1390
     * @param startPos  the start position, negative treated as zero
1391
     * @return the first index of the search CharSequence (always &ge; startPos),
1392
     *  -1 if no match or {@code null} string input
1393
     * @since 2.0
1394
     * @since 3.0 Changed signature from indexOf(String, String, int) to indexOf(CharSequence, CharSequence, int)
1395
     */
1396
    public static int indexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos) {
1397 2 1. indexOf : negated conditional → KILLED
2. indexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1398 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1399
        }
1400 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, startPos);
1401
    }
1402
1403
    /**
1404
     * <p>Finds the n-th index within a CharSequence, handling {@code null}.
1405
     * This method uses {@link String#indexOf(String)} if possible.</p>
1406
     * <p><b>Note:</b> The code starts looking for a match at the start of the target,
1407
     * incrementing the starting index by one after each successful match
1408
     * (unless {@code searchStr} is an empty string in which case the position
1409
     * is never incremented and {@code 0} is returned immediately).
1410
     * This means that matches may overlap.</p>
1411
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1412
     *
1413
     * <pre>
1414
     * StringUtils.ordinalIndexOf(null, *, *)          = -1
1415
     * StringUtils.ordinalIndexOf(*, null, *)          = -1
1416
     * StringUtils.ordinalIndexOf("", "", *)           = 0
1417
     * StringUtils.ordinalIndexOf("aabaabaa", "a", 1)  = 0
1418
     * StringUtils.ordinalIndexOf("aabaabaa", "a", 2)  = 1
1419
     * StringUtils.ordinalIndexOf("aabaabaa", "b", 1)  = 2
1420
     * StringUtils.ordinalIndexOf("aabaabaa", "b", 2)  = 5
1421
     * StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1
1422
     * StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4
1423
     * StringUtils.ordinalIndexOf("aabaabaa", "", 1)   = 0
1424
     * StringUtils.ordinalIndexOf("aabaabaa", "", 2)   = 0
1425
     * </pre>
1426
     *
1427
     * <p>Matches may overlap:</p>
1428
     * <pre>
1429
     * StringUtils.ordinalIndexOf("ababab","aba", 1)   = 0
1430
     * StringUtils.ordinalIndexOf("ababab","aba", 2)   = 2
1431
     * StringUtils.ordinalIndexOf("ababab","aba", 3)   = -1
1432
     *
1433
     * StringUtils.ordinalIndexOf("abababab", "abab", 1) = 0
1434
     * StringUtils.ordinalIndexOf("abababab", "abab", 2) = 2
1435
     * StringUtils.ordinalIndexOf("abababab", "abab", 3) = 4
1436
     * StringUtils.ordinalIndexOf("abababab", "abab", 4) = -1
1437
     * </pre>
1438
     *
1439
     * <p>Note that 'head(CharSequence str, int n)' may be implemented as: </p>
1440
     *
1441
     * <pre>
1442
     *   str.substring(0, lastOrdinalIndexOf(str, "\n", n))
1443
     * </pre>
1444
     *
1445
     * @param str  the CharSequence to check, may be null
1446
     * @param searchStr  the CharSequence to find, may be null
1447
     * @param ordinal  the n-th {@code searchStr} to find
1448
     * @return the n-th index of the search CharSequence,
1449
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1450
     * @since 2.1
1451
     * @since 3.0 Changed signature from ordinalIndexOf(String, String, int) to ordinalIndexOf(CharSequence, CharSequence, int)
1452
     */
1453
    public static int ordinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal) {
1454 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ordinalIndexOf(str, searchStr, ordinal, false);
1455
    }
1456
1457
    /**
1458
     * <p>Finds the n-th index within a String, handling {@code null}.
1459
     * This method uses {@link String#indexOf(String)} if possible.</p>
1460
     * <p>Note that matches may overlap<p>
1461
     *
1462
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1463
     *
1464
     * @param str  the CharSequence to check, may be null
1465
     * @param searchStr  the CharSequence to find, may be null
1466
     * @param ordinal  the n-th {@code searchStr} to find, overlapping matches are allowed.
1467
     * @param lastIndex true if lastOrdinalIndexOf() otherwise false if ordinalIndexOf()
1468
     * @return the n-th index of the search CharSequence,
1469
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1470
     */
1471
    // Shared code between ordinalIndexOf(String,String,int) and lastOrdinalIndexOf(String,String,int)
1472
    private static int ordinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal, final boolean lastIndex) {
1473 4 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
3. ordinalIndexOf : negated conditional → KILLED
4. ordinalIndexOf : negated conditional → KILLED
        if (str == null || searchStr == null || ordinal <= 0) {
1474 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1475
        }
1476 1 1. ordinalIndexOf : negated conditional → KILLED
        if (searchStr.length() == 0) {
1477 2 1. ordinalIndexOf : negated conditional → KILLED
2. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return lastIndex ? str.length() : 0;
1478
        }
1479
        int found = 0;
1480
        // set the initial index beyond the end of the string
1481
        // this is to allow for the initial index decrement/increment
1482 1 1. ordinalIndexOf : negated conditional → KILLED
        int index = lastIndex ? str.length() : INDEX_NOT_FOUND;
1483
        do {
1484 1 1. ordinalIndexOf : negated conditional → KILLED
            if (lastIndex) {
1485 1 1. ordinalIndexOf : Replaced integer subtraction with addition → KILLED
                index = CharSequenceUtils.lastIndexOf(str, searchStr, index - 1); // step backwards thru string
1486
            } else {
1487 1 1. ordinalIndexOf : Replaced integer addition with subtraction → KILLED
                index = CharSequenceUtils.indexOf(str, searchStr, index + 1); // step forwards through string
1488
            }
1489 2 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
            if (index < 0) {
1490 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return index;
1491
            }
1492 1 1. ordinalIndexOf : Changed increment from 1 to -1 → KILLED
            found++;
1493 2 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
        } while (found < ordinal);
1494 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return index;
1495
    }
1496
1497
    /**
1498
     * <p>Case in-sensitive find of the first index within a CharSequence.</p>
1499
     *
1500
     * <p>A {@code null} CharSequence will return {@code -1}.
1501
     * A negative start position is treated as zero.
1502
     * An empty ("") search CharSequence always matches.
1503
     * A start position greater than the string length only matches
1504
     * an empty search CharSequence.</p>
1505
     *
1506
     * <pre>
1507
     * StringUtils.indexOfIgnoreCase(null, *)          = -1
1508
     * StringUtils.indexOfIgnoreCase(*, null)          = -1
1509
     * StringUtils.indexOfIgnoreCase("", "")           = 0
1510
     * StringUtils.indexOfIgnoreCase("aabaabaa", "a")  = 0
1511
     * StringUtils.indexOfIgnoreCase("aabaabaa", "b")  = 2
1512
     * StringUtils.indexOfIgnoreCase("aabaabaa", "ab") = 1
1513
     * </pre>
1514
     *
1515
     * @param str  the CharSequence to check, may be null
1516
     * @param searchStr  the CharSequence to find, may be null
1517
     * @return the first index of the search CharSequence,
1518
     *  -1 if no match or {@code null} string input
1519
     * @since 2.5
1520
     * @since 3.0 Changed signature from indexOfIgnoreCase(String, String) to indexOfIgnoreCase(CharSequence, CharSequence)
1521
     */
1522
    public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1523 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfIgnoreCase(str, searchStr, 0);
1524
    }
1525
1526
    /**
1527
     * <p>Case in-sensitive find of the first index within a CharSequence
1528
     * from the specified position.</p>
1529
     *
1530
     * <p>A {@code null} CharSequence will return {@code -1}.
1531
     * A negative start position is treated as zero.
1532
     * An empty ("") search CharSequence always matches.
1533
     * A start position greater than the string length only matches
1534
     * an empty search CharSequence.</p>
1535
     *
1536
     * <pre>
1537
     * StringUtils.indexOfIgnoreCase(null, *, *)          = -1
1538
     * StringUtils.indexOfIgnoreCase(*, null, *)          = -1
1539
     * StringUtils.indexOfIgnoreCase("", "", 0)           = 0
1540
     * StringUtils.indexOfIgnoreCase("aabaabaa", "A", 0)  = 0
1541
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 0)  = 2
1542
     * StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 0) = 1
1543
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 3)  = 5
1544
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 9)  = -1
1545
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", -1) = 2
1546
     * StringUtils.indexOfIgnoreCase("aabaabaa", "", 2)   = 2
1547
     * StringUtils.indexOfIgnoreCase("abc", "", 9)        = -1
1548
     * </pre>
1549
     *
1550
     * @param str  the CharSequence to check, may be null
1551
     * @param searchStr  the CharSequence to find, may be null
1552
     * @param startPos  the start position, negative treated as zero
1553
     * @return the first index of the search CharSequence (always &ge; startPos),
1554
     *  -1 if no match or {@code null} string input
1555
     * @since 2.5
1556
     * @since 3.0 Changed signature from indexOfIgnoreCase(String, String, int) to indexOfIgnoreCase(CharSequence, CharSequence, int)
1557
     */
1558
    public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos) {
1559 2 1. indexOfIgnoreCase : negated conditional → KILLED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1560 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1561
        }
1562 2 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (startPos < 0) {
1563
            startPos = 0;
1564
        }
1565 2 1. indexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
2. indexOfIgnoreCase : Replaced integer addition with subtraction → KILLED
        final int endLimit = str.length() - searchStr.length() + 1;
1566 2 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (startPos > endLimit) {
1567 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1568
        }
1569 1 1. indexOfIgnoreCase : negated conditional → KILLED
        if (searchStr.length() == 0) {
1570 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return startPos;
1571
        }
1572 3 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : Changed increment from 1 to -1 → TIMED_OUT
3. indexOfIgnoreCase : negated conditional → KILLED
        for (int i = startPos; i < endLimit; i++) {
1573 1 1. indexOfIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, searchStr.length())) {
1574 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return i;
1575
            }
1576
        }
1577 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
1578
    }
1579
1580
    // LastIndexOf
1581
    //-----------------------------------------------------------------------
1582
    /**
1583
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1584
     * This method uses {@link String#lastIndexOf(int)} if possible.</p>
1585
     *
1586
     * <p>A {@code null} or empty ("") CharSequence will return {@code -1}.</p>
1587
     *
1588
     * <pre>
1589
     * StringUtils.lastIndexOf(null, *)         = -1
1590
     * StringUtils.lastIndexOf("", *)           = -1
1591
     * StringUtils.lastIndexOf("aabaabaa", 'a') = 7
1592
     * StringUtils.lastIndexOf("aabaabaa", 'b') = 5
1593
     * </pre>
1594
     *
1595
     * @param seq  the CharSequence to check, may be null
1596
     * @param searchChar  the character to find
1597
     * @return the last index of the search character,
1598
     *  -1 if no match or {@code null} string input
1599
     * @since 2.0
1600
     * @since 3.0 Changed signature from lastIndexOf(String, int) to lastIndexOf(CharSequence, int)
1601
     */
1602
    public static int lastIndexOf(final CharSequence seq, final int searchChar) {
1603 1 1. lastIndexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1604 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1605
        }
1606 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchChar, seq.length());
1607
    }
1608
1609
    /**
1610
     * <p>Finds the last index within a CharSequence from a start position,
1611
     * handling {@code null}.
1612
     * This method uses {@link String#lastIndexOf(int, int)} if possible.</p>
1613
     *
1614
     * <p>A {@code null} or empty ("") CharSequence will return {@code -1}.
1615
     * A negative start position returns {@code -1}.
1616
     * A start position greater than the string length searches the whole string.
1617
     * The search starts at the startPos and works backwards; matches starting after the start
1618
     * position are ignored.
1619
     * </p>
1620
     *
1621
     * <pre>
1622
     * StringUtils.lastIndexOf(null, *, *)          = -1
1623
     * StringUtils.lastIndexOf("", *,  *)           = -1
1624
     * StringUtils.lastIndexOf("aabaabaa", 'b', 8)  = 5
1625
     * StringUtils.lastIndexOf("aabaabaa", 'b', 4)  = 2
1626
     * StringUtils.lastIndexOf("aabaabaa", 'b', 0)  = -1
1627
     * StringUtils.lastIndexOf("aabaabaa", 'b', 9)  = 5
1628
     * StringUtils.lastIndexOf("aabaabaa", 'b', -1) = -1
1629
     * StringUtils.lastIndexOf("aabaabaa", 'a', 0)  = 0
1630
     * </pre>
1631
     *
1632
     * @param seq  the CharSequence to check, may be null
1633
     * @param searchChar  the character to find
1634
     * @param startPos  the start position
1635
     * @return the last index of the search character (always &le; startPos),
1636
     *  -1 if no match or {@code null} string input
1637
     * @since 2.0
1638
     * @since 3.0 Changed signature from lastIndexOf(String, int, int) to lastIndexOf(CharSequence, int, int)
1639
     */
1640
    public static int lastIndexOf(final CharSequence seq, final int searchChar, final int startPos) {
1641 1 1. lastIndexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1642 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1643
        }
1644 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchChar, startPos);
1645
    }
1646
1647
    /**
1648
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1649
     * This method uses {@link String#lastIndexOf(String)} if possible.</p>
1650
     *
1651
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1652
     *
1653
     * <pre>
1654
     * StringUtils.lastIndexOf(null, *)          = -1
1655
     * StringUtils.lastIndexOf(*, null)          = -1
1656
     * StringUtils.lastIndexOf("", "")           = 0
1657
     * StringUtils.lastIndexOf("aabaabaa", "a")  = 7
1658
     * StringUtils.lastIndexOf("aabaabaa", "b")  = 5
1659
     * StringUtils.lastIndexOf("aabaabaa", "ab") = 4
1660
     * StringUtils.lastIndexOf("aabaabaa", "")   = 8
1661
     * </pre>
1662
     *
1663
     * @param seq  the CharSequence to check, may be null
1664
     * @param searchSeq  the CharSequence to find, may be null
1665
     * @return the last index of the search String,
1666
     *  -1 if no match or {@code null} string input
1667
     * @since 2.0
1668
     * @since 3.0 Changed signature from lastIndexOf(String, String) to lastIndexOf(CharSequence, CharSequence)
1669
     */
1670
    public static int lastIndexOf(final CharSequence seq, final CharSequence searchSeq) {
1671 2 1. lastIndexOf : negated conditional → KILLED
2. lastIndexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1672 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1673
        }
1674 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchSeq, seq.length());
1675
    }
1676
1677
    /**
1678
     * <p>Finds the n-th last index within a String, handling {@code null}.
1679
     * This method uses {@link String#lastIndexOf(String)}.</p>
1680
     *
1681
     * <p>A {@code null} String will return {@code -1}.</p>
1682
     *
1683
     * <pre>
1684
     * StringUtils.lastOrdinalIndexOf(null, *, *)          = -1
1685
     * StringUtils.lastOrdinalIndexOf(*, null, *)          = -1
1686
     * StringUtils.lastOrdinalIndexOf("", "", *)           = 0
1687
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 1)  = 7
1688
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 2)  = 6
1689
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 1)  = 5
1690
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 2)  = 2
1691
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 1) = 4
1692
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 2) = 1
1693
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "", 1)   = 8
1694
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "", 2)   = 8
1695
     * </pre>
1696
     *
1697
     * <p>Note that 'tail(CharSequence str, int n)' may be implemented as: </p>
1698
     *
1699
     * <pre>
1700
     *   str.substring(lastOrdinalIndexOf(str, "\n", n) + 1)
1701
     * </pre>
1702
     *
1703
     * @param str  the CharSequence to check, may be null
1704
     * @param searchStr  the CharSequence to find, may be null
1705
     * @param ordinal  the n-th last {@code searchStr} to find
1706
     * @return the n-th last index of the search CharSequence,
1707
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1708
     * @since 2.5
1709
     * @since 3.0 Changed signature from lastOrdinalIndexOf(String, String, int) to lastOrdinalIndexOf(CharSequence, CharSequence, int)
1710
     */
1711
    public static int lastOrdinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal) {
1712 1 1. lastOrdinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ordinalIndexOf(str, searchStr, ordinal, true);
1713
    }
1714
1715
    /**
1716
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1717
     * This method uses {@link String#lastIndexOf(String, int)} if possible.</p>
1718
     *
1719
     * <p>A {@code null} CharSequence will return {@code -1}.
1720
     * A negative start position returns {@code -1}.
1721
     * An empty ("") search CharSequence always matches unless the start position is negative.
1722
     * A start position greater than the string length searches the whole string.
1723
     * The search starts at the startPos and works backwards; matches starting after the start
1724
     * position are ignored.
1725
     * </p>
1726
     *
1727
     * <pre>
1728
     * StringUtils.lastIndexOf(null, *, *)          = -1
1729
     * StringUtils.lastIndexOf(*, null, *)          = -1
1730
     * StringUtils.lastIndexOf("aabaabaa", "a", 8)  = 7
1731
     * StringUtils.lastIndexOf("aabaabaa", "b", 8)  = 5
1732
     * StringUtils.lastIndexOf("aabaabaa", "ab", 8) = 4
1733
     * StringUtils.lastIndexOf("aabaabaa", "b", 9)  = 5
1734
     * StringUtils.lastIndexOf("aabaabaa", "b", -1) = -1
1735
     * StringUtils.lastIndexOf("aabaabaa", "a", 0)  = 0
1736
     * StringUtils.lastIndexOf("aabaabaa", "b", 0)  = -1
1737
     * StringUtils.lastIndexOf("aabaabaa", "b", 1)  = -1
1738
     * StringUtils.lastIndexOf("aabaabaa", "b", 2)  = 2
1739
     * StringUtils.lastIndexOf("aabaabaa", "ba", 2)  = -1
1740
     * StringUtils.lastIndexOf("aabaabaa", "ba", 2)  = 2
1741
     * </pre>
1742
     *
1743
     * @param seq  the CharSequence to check, may be null
1744
     * @param searchSeq  the CharSequence to find, may be null
1745
     * @param startPos  the start position, negative treated as zero
1746
     * @return the last index of the search CharSequence (always &le; startPos),
1747
     *  -1 if no match or {@code null} string input
1748
     * @since 2.0
1749
     * @since 3.0 Changed signature from lastIndexOf(String, String, int) to lastIndexOf(CharSequence, CharSequence, int)
1750
     */
1751
    public static int lastIndexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos) {
1752 2 1. lastIndexOf : negated conditional → KILLED
2. lastIndexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1753 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1754
        }
1755 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchSeq, startPos);
1756
    }
1757
1758
    /**
1759
     * <p>Case in-sensitive find of the last index within a CharSequence.</p>
1760
     *
1761
     * <p>A {@code null} CharSequence will return {@code -1}.
1762
     * A negative start position returns {@code -1}.
1763
     * An empty ("") search CharSequence always matches unless the start position is negative.
1764
     * A start position greater than the string length searches the whole string.</p>
1765
     *
1766
     * <pre>
1767
     * StringUtils.lastIndexOfIgnoreCase(null, *)          = -1
1768
     * StringUtils.lastIndexOfIgnoreCase(*, null)          = -1
1769
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A")  = 7
1770
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B")  = 5
1771
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB") = 4
1772
     * </pre>
1773
     *
1774
     * @param str  the CharSequence to check, may be null
1775
     * @param searchStr  the CharSequence to find, may be null
1776
     * @return the first index of the search CharSequence,
1777
     *  -1 if no match or {@code null} string input
1778
     * @since 2.5
1779
     * @since 3.0 Changed signature from lastIndexOfIgnoreCase(String, String) to lastIndexOfIgnoreCase(CharSequence, CharSequence)
1780
     */
1781
    public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1782 2 1. lastIndexOfIgnoreCase : negated conditional → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1783 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1784
        }
1785 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return lastIndexOfIgnoreCase(str, searchStr, str.length());
1786
    }
1787
1788
    /**
1789
     * <p>Case in-sensitive find of the last index within a CharSequence
1790
     * from the specified position.</p>
1791
     *
1792
     * <p>A {@code null} CharSequence will return {@code -1}.
1793
     * A negative start position returns {@code -1}.
1794
     * An empty ("") search CharSequence always matches unless the start position is negative.
1795
     * A start position greater than the string length searches the whole string.
1796
     * The search starts at the startPos and works backwards; matches starting after the start
1797
     * position are ignored.
1798
     * </p>
1799
     *
1800
     * <pre>
1801
     * StringUtils.lastIndexOfIgnoreCase(null, *, *)          = -1
1802
     * StringUtils.lastIndexOfIgnoreCase(*, null, *)          = -1
1803
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 8)  = 7
1804
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 8)  = 5
1805
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB", 8) = 4
1806
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 9)  = 5
1807
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", -1) = -1
1808
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 0)  = 0
1809
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 0)  = -1
1810
     * </pre>
1811
     *
1812
     * @param str  the CharSequence to check, may be null
1813
     * @param searchStr  the CharSequence to find, may be null
1814
     * @param startPos  the start position
1815
     * @return the last index of the search CharSequence (always &le; startPos),
1816
     *  -1 if no match or {@code null} input
1817
     * @since 2.5
1818
     * @since 3.0 Changed signature from lastIndexOfIgnoreCase(String, String, int) to lastIndexOfIgnoreCase(CharSequence, CharSequence, int)
1819
     */
1820
    public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos) {
1821 2 1. lastIndexOfIgnoreCase : negated conditional → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1822 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1823
        }
1824 3 1. lastIndexOfIgnoreCase : changed conditional boundary → SURVIVED
2. lastIndexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
3. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (startPos > str.length() - searchStr.length()) {
1825 1 1. lastIndexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
            startPos = str.length() - searchStr.length();
1826
        }
1827 2 1. lastIndexOfIgnoreCase : changed conditional boundary → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (startPos < 0) {
1828 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1829
        }
1830 1 1. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (searchStr.length() == 0) {
1831 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return startPos;
1832
        }
1833
1834 3 1. lastIndexOfIgnoreCase : changed conditional boundary → KILLED
2. lastIndexOfIgnoreCase : Changed increment from -1 to 1 → KILLED
3. lastIndexOfIgnoreCase : negated conditional → KILLED
        for (int i = startPos; i >= 0; i--) {
1835 1 1. lastIndexOfIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, searchStr.length())) {
1836 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return i;
1837
            }
1838
        }
1839 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
1840
    }
1841
1842
    // Contains
1843
    //-----------------------------------------------------------------------
1844
    /**
1845
     * <p>Checks if CharSequence contains a search character, handling {@code null}.
1846
     * This method uses {@link String#indexOf(int)} if possible.</p>
1847
     *
1848
     * <p>A {@code null} or empty ("") CharSequence will return {@code false}.</p>
1849
     *
1850
     * <pre>
1851
     * StringUtils.contains(null, *)    = false
1852
     * StringUtils.contains("", *)      = false
1853
     * StringUtils.contains("abc", 'a') = true
1854
     * StringUtils.contains("abc", 'z') = false
1855
     * </pre>
1856
     *
1857
     * @param seq  the CharSequence to check, may be null
1858
     * @param searchChar  the character to find
1859
     * @return true if the CharSequence contains the search character,
1860
     *  false if not or {@code null} string input
1861
     * @since 2.0
1862
     * @since 3.0 Changed signature from contains(String, int) to contains(CharSequence, int)
1863
     */
1864
    public static boolean contains(final CharSequence seq, final int searchChar) {
1865 1 1. contains : negated conditional → KILLED
        if (isEmpty(seq)) {
1866 1 1. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1867
        }
1868 3 1. contains : changed conditional boundary → KILLED
2. contains : negated conditional → KILLED
3. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, 0) >= 0;
1869
    }
1870
1871
    /**
1872
     * <p>Checks if CharSequence contains a search CharSequence, handling {@code null}.
1873
     * This method uses {@link String#indexOf(String)} if possible.</p>
1874
     *
1875
     * <p>A {@code null} CharSequence will return {@code false}.</p>
1876
     *
1877
     * <pre>
1878
     * StringUtils.contains(null, *)     = false
1879
     * StringUtils.contains(*, null)     = false
1880
     * StringUtils.contains("", "")      = true
1881
     * StringUtils.contains("abc", "")   = true
1882
     * StringUtils.contains("abc", "a")  = true
1883
     * StringUtils.contains("abc", "z")  = false
1884
     * </pre>
1885
     *
1886
     * @param seq  the CharSequence to check, may be null
1887
     * @param searchSeq  the CharSequence to find, may be null
1888
     * @return true if the CharSequence contains the search CharSequence,
1889
     *  false if not or {@code null} string input
1890
     * @since 2.0
1891
     * @since 3.0 Changed signature from contains(String, String) to contains(CharSequence, CharSequence)
1892
     */
1893
    public static boolean contains(final CharSequence seq, final CharSequence searchSeq) {
1894 2 1. contains : negated conditional → KILLED
2. contains : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1895 1 1. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1896
        }
1897 3 1. contains : changed conditional boundary → KILLED
2. contains : negated conditional → KILLED
3. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, 0) >= 0;
1898
    }
1899
1900
    /**
1901
     * <p>Checks if CharSequence contains a search CharSequence irrespective of case,
1902
     * handling {@code null}. Case-insensitivity is defined as by
1903
     * {@link String#equalsIgnoreCase(String)}.
1904
     *
1905
     * <p>A {@code null} CharSequence will return {@code false}.</p>
1906
     *
1907
     * <pre>
1908
     * StringUtils.containsIgnoreCase(null, *) = false
1909
     * StringUtils.containsIgnoreCase(*, null) = false
1910
     * StringUtils.containsIgnoreCase("", "") = true
1911
     * StringUtils.containsIgnoreCase("abc", "") = true
1912
     * StringUtils.containsIgnoreCase("abc", "a") = true
1913
     * StringUtils.containsIgnoreCase("abc", "z") = false
1914
     * StringUtils.containsIgnoreCase("abc", "A") = true
1915
     * StringUtils.containsIgnoreCase("abc", "Z") = false
1916
     * </pre>
1917
     *
1918
     * @param str  the CharSequence to check, may be null
1919
     * @param searchStr  the CharSequence to find, may be null
1920
     * @return true if the CharSequence contains the search CharSequence irrespective of
1921
     * case or false if not or {@code null} string input
1922
     * @since 3.0 Changed signature from containsIgnoreCase(String, String) to containsIgnoreCase(CharSequence, CharSequence)
1923
     */
1924
    public static boolean containsIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1925 2 1. containsIgnoreCase : negated conditional → KILLED
2. containsIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1926 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1927
        }
1928
        final int len = searchStr.length();
1929 1 1. containsIgnoreCase : Replaced integer subtraction with addition → SURVIVED
        final int max = str.length() - len;
1930 3 1. containsIgnoreCase : Changed increment from 1 to -1 → TIMED_OUT
2. containsIgnoreCase : changed conditional boundary → KILLED
3. containsIgnoreCase : negated conditional → KILLED
        for (int i = 0; i <= max; i++) {
1931 1 1. containsIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, len)) {
1932 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
1933
            }
1934
        }
1935 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1936
    }
1937
1938
    /**
1939
     * <p>Check whether the given CharSequence contains any whitespace characters.</p>
1940
     * 
1941
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
1942
     * 
1943
     * @param seq the CharSequence to check (may be {@code null})
1944
     * @return {@code true} if the CharSequence is not empty and
1945
     * contains at least 1 (breaking) whitespace character
1946
     * @since 3.0
1947
     */
1948
    // From org.springframework.util.StringUtils, under Apache License 2.0
1949
    public static boolean containsWhitespace(final CharSequence seq) {
1950 1 1. containsWhitespace : negated conditional → KILLED
        if (isEmpty(seq)) {
1951 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1952
        }
1953
        final int strLen = seq.length();
1954 3 1. containsWhitespace : changed conditional boundary → KILLED
2. containsWhitespace : Changed increment from 1 to -1 → KILLED
3. containsWhitespace : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
1955 1 1. containsWhitespace : negated conditional → KILLED
            if (Character.isWhitespace(seq.charAt(i))) {
1956 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
1957
            }
1958
        }
1959 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1960
    }
1961
1962
    // IndexOfAny chars
1963
    //-----------------------------------------------------------------------
1964
    /**
1965
     * <p>Search a CharSequence to find the first index of any
1966
     * character in the given set of characters.</p>
1967
     *
1968
     * <p>A {@code null} String will return {@code -1}.
1969
     * A {@code null} or zero length search array will return {@code -1}.</p>
1970
     *
1971
     * <pre>
1972
     * StringUtils.indexOfAny(null, *)                = -1
1973
     * StringUtils.indexOfAny("", *)                  = -1
1974
     * StringUtils.indexOfAny(*, null)                = -1
1975
     * StringUtils.indexOfAny(*, [])                  = -1
1976
     * StringUtils.indexOfAny("zzabyycdxx",['z','a']) = 0
1977
     * StringUtils.indexOfAny("zzabyycdxx",['b','y']) = 3
1978
     * StringUtils.indexOfAny("aba", ['z'])           = -1
1979
     * </pre>
1980
     *
1981
     * @param cs  the CharSequence to check, may be null
1982
     * @param searchChars  the chars to search for, may be null
1983
     * @return the index of any of the chars, -1 if no match or null input
1984
     * @since 2.0
1985
     * @since 3.0 Changed signature from indexOfAny(String, char[]) to indexOfAny(CharSequence, char...)
1986
     */
1987
    public static int indexOfAny(final CharSequence cs, final char... searchChars) {
1988 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
1989 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1990
        }
1991
        final int csLen = cs.length();
1992 1 1. indexOfAny : Replaced integer subtraction with addition → SURVIVED
        final int csLast = csLen - 1;
1993
        final int searchLen = searchChars.length;
1994 1 1. indexOfAny : Replaced integer subtraction with addition → SURVIVED
        final int searchLast = searchLen - 1;
1995 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
1996
            final char ch = cs.charAt(i);
1997 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
1998 1 1. indexOfAny : negated conditional → KILLED
                if (searchChars[j] == ch) {
1999 5 1. indexOfAny : changed conditional boundary → SURVIVED
2. indexOfAny : changed conditional boundary → SURVIVED
3. indexOfAny : negated conditional → KILLED
4. indexOfAny : negated conditional → KILLED
5. indexOfAny : negated conditional → KILLED
                    if (i < csLast && j < searchLast && Character.isHighSurrogate(ch)) {
2000
                        // ch is a supplementary character
2001 3 1. indexOfAny : Replaced integer addition with subtraction → KILLED
2. indexOfAny : Replaced integer addition with subtraction → KILLED
3. indexOfAny : negated conditional → KILLED
                        if (searchChars[j + 1] == cs.charAt(i + 1)) {
2002 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return i;
2003
                        }
2004
                    } else {
2005 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return i;
2006
                    }
2007
                }
2008
            }
2009
        }
2010 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
2011
    }
2012
2013
    /**
2014
     * <p>Search a CharSequence to find the first index of any
2015
     * character in the given set of characters.</p>
2016
     *
2017
     * <p>A {@code null} String will return {@code -1}.
2018
     * A {@code null} search string will return {@code -1}.</p>
2019
     *
2020
     * <pre>
2021
     * StringUtils.indexOfAny(null, *)            = -1
2022
     * StringUtils.indexOfAny("", *)              = -1
2023
     * StringUtils.indexOfAny(*, null)            = -1
2024
     * StringUtils.indexOfAny(*, "")              = -1
2025
     * StringUtils.indexOfAny("zzabyycdxx", "za") = 0
2026
     * StringUtils.indexOfAny("zzabyycdxx", "by") = 3
2027
     * StringUtils.indexOfAny("aba","z")          = -1
2028
     * </pre>
2029
     *
2030
     * @param cs  the CharSequence to check, may be null
2031
     * @param searchChars  the chars to search for, may be null
2032
     * @return the index of any of the chars, -1 if no match or null input
2033
     * @since 2.0
2034
     * @since 3.0 Changed signature from indexOfAny(String, String) to indexOfAny(CharSequence, String)
2035
     */
2036
    public static int indexOfAny(final CharSequence cs, final String searchChars) {
2037 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (isEmpty(cs) || isEmpty(searchChars)) {
2038 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2039
        }
2040 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfAny(cs, searchChars.toCharArray());
2041
    }
2042
2043
    // ContainsAny
2044
    //-----------------------------------------------------------------------
2045
    /**
2046
     * <p>Checks if the CharSequence contains any character in the given
2047
     * set of characters.</p>
2048
     *
2049
     * <p>A {@code null} CharSequence will return {@code false}.
2050
     * A {@code null} or zero length search array will return {@code false}.</p>
2051
     *
2052
     * <pre>
2053
     * StringUtils.containsAny(null, *)                = false
2054
     * StringUtils.containsAny("", *)                  = false
2055
     * StringUtils.containsAny(*, null)                = false
2056
     * StringUtils.containsAny(*, [])                  = false
2057
     * StringUtils.containsAny("zzabyycdxx",['z','a']) = true
2058
     * StringUtils.containsAny("zzabyycdxx",['b','y']) = true
2059
     * StringUtils.containsAny("zzabyycdxx",['z','y']) = true
2060
     * StringUtils.containsAny("aba", ['z'])           = false
2061
     * </pre>
2062
     *
2063
     * @param cs  the CharSequence to check, may be null
2064
     * @param searchChars  the chars to search for, may be null
2065
     * @return the {@code true} if any of the chars are found,
2066
     * {@code false} if no match or null input
2067
     * @since 2.4
2068
     * @since 3.0 Changed signature from containsAny(String, char[]) to containsAny(CharSequence, char...)
2069
     */
2070
    public static boolean containsAny(final CharSequence cs, final char... searchChars) {
2071 2 1. containsAny : negated conditional → KILLED
2. containsAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
2072 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2073
        }
2074
        final int csLength = cs.length();
2075
        final int searchLength = searchChars.length;
2076 1 1. containsAny : Replaced integer subtraction with addition → KILLED
        final int csLast = csLength - 1;
2077 1 1. containsAny : Replaced integer subtraction with addition → KILLED
        final int searchLast = searchLength - 1;
2078 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
        for (int i = 0; i < csLength; i++) {
2079
            final char ch = cs.charAt(i);
2080 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
            for (int j = 0; j < searchLength; j++) {
2081 1 1. containsAny : negated conditional → KILLED
                if (searchChars[j] == ch) {
2082 1 1. containsAny : negated conditional → KILLED
                    if (Character.isHighSurrogate(ch)) {
2083 1 1. containsAny : negated conditional → KILLED
                        if (j == searchLast) {
2084
                            // missing low surrogate, fine, like String.indexOf(String)
2085 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return true;
2086
                        }
2087 5 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Replaced integer addition with subtraction → KILLED
3. containsAny : Replaced integer addition with subtraction → KILLED
4. containsAny : negated conditional → KILLED
5. containsAny : negated conditional → KILLED
                        if (i < csLast && searchChars[j + 1] == cs.charAt(i + 1)) {
2088 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return true;
2089
                        }
2090
                    } else {
2091
                        // ch is in the Basic Multilingual Plane
2092 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return true;
2093
                    }
2094
                }
2095
            }
2096
        }
2097 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
2098
    }
2099
2100
    /**
2101
     * <p>
2102
     * Checks if the CharSequence contains any character in the given set of characters.
2103
     * </p>
2104
     *
2105
     * <p>
2106
     * A {@code null} CharSequence will return {@code false}. A {@code null} search CharSequence will return
2107
     * {@code false}.
2108
     * </p>
2109
     *
2110
     * <pre>
2111
     * StringUtils.containsAny(null, *)               = false
2112
     * StringUtils.containsAny("", *)                 = false
2113
     * StringUtils.containsAny(*, null)               = false
2114
     * StringUtils.containsAny(*, "")                 = false
2115
     * StringUtils.containsAny("zzabyycdxx", "za")    = true
2116
     * StringUtils.containsAny("zzabyycdxx", "by")    = true
2117
     * StringUtils.containsAny("zzabyycdxx", "zy")    = true
2118
     * StringUtils.containsAny("zzabyycdxx", "\tx")   = true
2119
     * StringUtils.containsAny("zzabyycdxx", "$.#yF") = true
2120
     * StringUtils.containsAny("aba","z")             = false
2121
     * </pre>
2122
     *
2123
     * @param cs
2124
     *            the CharSequence to check, may be null
2125
     * @param searchChars
2126
     *            the chars to search for, may be null
2127
     * @return the {@code true} if any of the chars are found, {@code false} if no match or null input
2128
     * @since 2.4
2129
     * @since 3.0 Changed signature from containsAny(String, String) to containsAny(CharSequence, CharSequence)
2130
     */
2131
    public static boolean containsAny(final CharSequence cs, final CharSequence searchChars) {
2132 1 1. containsAny : negated conditional → KILLED
        if (searchChars == null) {
2133 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2134
        }
2135 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsAny(cs, CharSequenceUtils.toCharArray(searchChars));
2136
    }
2137
2138
    /**
2139
     * <p>Checks if the CharSequence contains any of the CharSequences in the given array.</p>
2140
     *
2141
     * <p>
2142
     * A {@code null} {@code cs} CharSequence will return {@code false}. A {@code null} or zero
2143
     * length search array will return {@code false}.
2144
     * </p>
2145
     *
2146
     * <pre>
2147
     * StringUtils.containsAny(null, *)            = false
2148
     * StringUtils.containsAny("", *)              = false
2149
     * StringUtils.containsAny(*, null)            = false
2150
     * StringUtils.containsAny(*, [])              = false
2151
     * StringUtils.containsAny("abcd", "ab", null) = true
2152
     * StringUtils.containsAny("abcd", "ab", "cd") = true
2153
     * StringUtils.containsAny("abc", "d", "abc")  = true
2154
     * </pre>
2155
     *
2156
     * 
2157
     * @param cs The CharSequence to check, may be null
2158
     * @param searchCharSequences The array of CharSequences to search for, may be null.
2159
     * Individual CharSequences may be null as well.
2160
     * @return {@code true} if any of the search CharSequences are found, {@code false} otherwise
2161
     * @since 3.4
2162
     */
2163
    public static boolean containsAny(final CharSequence cs, final CharSequence... searchCharSequences) {
2164 2 1. containsAny : negated conditional → KILLED
2. containsAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchCharSequences)) {
2165 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2166
        }
2167 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
        for (final CharSequence searchCharSequence : searchCharSequences) {
2168 1 1. containsAny : negated conditional → KILLED
            if (contains(cs, searchCharSequence)) {
2169 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
2170
            }
2171
        }
2172 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
2173
    }
2174
2175
    // IndexOfAnyBut chars
2176
    //-----------------------------------------------------------------------
2177
    /**
2178
     * <p>Searches a CharSequence to find the first index of any
2179
     * character not in the given set of characters.</p>
2180
     *
2181
     * <p>A {@code null} CharSequence will return {@code -1}.
2182
     * A {@code null} or zero length search array will return {@code -1}.</p>
2183
     *
2184
     * <pre>
2185
     * StringUtils.indexOfAnyBut(null, *)                              = -1
2186
     * StringUtils.indexOfAnyBut("", *)                                = -1
2187
     * StringUtils.indexOfAnyBut(*, null)                              = -1
2188
     * StringUtils.indexOfAnyBut(*, [])                                = -1
2189
     * StringUtils.indexOfAnyBut("zzabyycdxx", new char[] {'z', 'a'} ) = 3
2190
     * StringUtils.indexOfAnyBut("aba", new char[] {'z'} )             = 0
2191
     * StringUtils.indexOfAnyBut("aba", new char[] {'a', 'b'} )        = -1
2192
2193
     * </pre>
2194
     *
2195
     * @param cs  the CharSequence to check, may be null
2196
     * @param searchChars  the chars to search for, may be null
2197
     * @return the index of any of the chars, -1 if no match or null input
2198
     * @since 2.0
2199
     * @since 3.0 Changed signature from indexOfAnyBut(String, char[]) to indexOfAnyBut(CharSequence, char...)
2200
     */
2201
    public static int indexOfAnyBut(final CharSequence cs, final char... searchChars) {
2202 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
2203 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2204
        }
2205
        final int csLen = cs.length();
2206 1 1. indexOfAnyBut : Replaced integer subtraction with addition → SURVIVED
        final int csLast = csLen - 1;
2207
        final int searchLen = searchChars.length;
2208 1 1. indexOfAnyBut : Replaced integer subtraction with addition → SURVIVED
        final int searchLast = searchLen - 1;
2209
        outer:
2210 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
2211
            final char ch = cs.charAt(i);
2212 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
2213 1 1. indexOfAnyBut : negated conditional → KILLED
                if (searchChars[j] == ch) {
2214 5 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : changed conditional boundary → SURVIVED
3. indexOfAnyBut : negated conditional → KILLED
4. indexOfAnyBut : negated conditional → KILLED
5. indexOfAnyBut : negated conditional → KILLED
                    if (i < csLast && j < searchLast && Character.isHighSurrogate(ch)) {
2215 3 1. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
2. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
3. indexOfAnyBut : negated conditional → KILLED
                        if (searchChars[j + 1] == cs.charAt(i + 1)) {
2216
                            continue outer;
2217
                        }
2218
                    } else {
2219
                        continue outer;
2220
                    }
2221
                }
2222
            }
2223 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return i;
2224
        }
2225 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
2226
    }
2227
2228
    /**
2229
     * <p>Search a CharSequence to find the first index of any
2230
     * character not in the given set of characters.</p>
2231
     *
2232
     * <p>A {@code null} CharSequence will return {@code -1}.
2233
     * A {@code null} or empty search string will return {@code -1}.</p>
2234
     *
2235
     * <pre>
2236
     * StringUtils.indexOfAnyBut(null, *)            = -1
2237
     * StringUtils.indexOfAnyBut("", *)              = -1
2238
     * StringUtils.indexOfAnyBut(*, null)            = -1
2239
     * StringUtils.indexOfAnyBut(*, "")              = -1
2240
     * StringUtils.indexOfAnyBut("zzabyycdxx", "za") = 3
2241
     * StringUtils.indexOfAnyBut("zzabyycdxx", "")   = -1
2242
     * StringUtils.indexOfAnyBut("aba","ab")         = -1
2243
     * </pre>
2244
     *
2245
     * @param seq  the CharSequence to check, may be null
2246
     * @param searchChars  the chars to search for, may be null
2247
     * @return the index of any of the chars, -1 if no match or null input
2248
     * @since 2.0
2249
     * @since 3.0 Changed signature from indexOfAnyBut(String, String) to indexOfAnyBut(CharSequence, CharSequence)
2250
     */
2251
    public static int indexOfAnyBut(final CharSequence seq, final CharSequence searchChars) {
2252 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : negated conditional → KILLED
        if (isEmpty(seq) || isEmpty(searchChars)) {
2253 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2254
        }
2255
        final int strLen = seq.length();
2256 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
2257
            final char ch = seq.charAt(i);
2258 2 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : negated conditional → KILLED
            final boolean chFound = CharSequenceUtils.indexOf(searchChars, ch, 0) >= 0;
2259 4 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : Replaced integer addition with subtraction → SURVIVED
3. indexOfAnyBut : negated conditional → KILLED
4. indexOfAnyBut : negated conditional → KILLED
            if (i + 1 < strLen && Character.isHighSurrogate(ch)) {
2260 1 1. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
                final char ch2 = seq.charAt(i + 1);
2261 3 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : negated conditional → KILLED
3. indexOfAnyBut : negated conditional → KILLED
                if (chFound && CharSequenceUtils.indexOf(searchChars, ch2, 0) < 0) {
2262 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return i;
2263
                }
2264
            } else {
2265 1 1. indexOfAnyBut : negated conditional → KILLED
                if (!chFound) {
2266 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return i;
2267
                }
2268
            }
2269
        }
2270 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
2271
    }
2272
2273
    // ContainsOnly
2274
    //-----------------------------------------------------------------------
2275
    /**
2276
     * <p>Checks if the CharSequence contains only certain characters.</p>
2277
     *
2278
     * <p>A {@code null} CharSequence will return {@code false}.
2279
     * A {@code null} valid character array will return {@code false}.
2280
     * An empty CharSequence (length()=0) always returns {@code true}.</p>
2281
     *
2282
     * <pre>
2283
     * StringUtils.containsOnly(null, *)       = false
2284
     * StringUtils.containsOnly(*, null)       = false
2285
     * StringUtils.containsOnly("", *)         = true
2286
     * StringUtils.containsOnly("ab", '')      = false
2287
     * StringUtils.containsOnly("abab", 'abc') = true
2288
     * StringUtils.containsOnly("ab1", 'abc')  = false
2289
     * StringUtils.containsOnly("abz", 'abc')  = false
2290
     * </pre>
2291
     *
2292
     * @param cs  the String to check, may be null
2293
     * @param valid  an array of valid chars, may be null
2294
     * @return true if it only contains valid chars and is non-null
2295
     * @since 3.0 Changed signature from containsOnly(String, char[]) to containsOnly(CharSequence, char...)
2296
     */
2297
    public static boolean containsOnly(final CharSequence cs, final char... valid) {
2298
        // All these pre-checks are to maintain API with an older version
2299 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : negated conditional → KILLED
        if (valid == null || cs == null) {
2300 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2301
        }
2302 1 1. containsOnly : negated conditional → KILLED
        if (cs.length() == 0) {
2303 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2304
        }
2305 1 1. containsOnly : negated conditional → KILLED
        if (valid.length == 0) {
2306 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2307
        }
2308 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfAnyBut(cs, valid) == INDEX_NOT_FOUND;
2309
    }
2310
2311
    /**
2312
     * <p>Checks if the CharSequence contains only certain characters.</p>
2313
     *
2314
     * <p>A {@code null} CharSequence will return {@code false}.
2315
     * A {@code null} valid character String will return {@code false}.
2316
     * An empty String (length()=0) always returns {@code true}.</p>
2317
     *
2318
     * <pre>
2319
     * StringUtils.containsOnly(null, *)       = false
2320
     * StringUtils.containsOnly(*, null)       = false
2321
     * StringUtils.containsOnly("", *)         = true
2322
     * StringUtils.containsOnly("ab", "")      = false
2323
     * StringUtils.containsOnly("abab", "abc") = true
2324
     * StringUtils.containsOnly("ab1", "abc")  = false
2325
     * StringUtils.containsOnly("abz", "abc")  = false
2326
     * </pre>
2327
     *
2328
     * @param cs  the CharSequence to check, may be null
2329
     * @param validChars  a String of valid chars, may be null
2330
     * @return true if it only contains valid chars and is non-null
2331
     * @since 2.0
2332
     * @since 3.0 Changed signature from containsOnly(String, String) to containsOnly(CharSequence, String)
2333
     */
2334
    public static boolean containsOnly(final CharSequence cs, final String validChars) {
2335 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : negated conditional → KILLED
        if (cs == null || validChars == null) {
2336 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2337
        }
2338 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsOnly(cs, validChars.toCharArray());
2339
    }
2340
2341
    // ContainsNone
2342
    //-----------------------------------------------------------------------
2343
    /**
2344
     * <p>Checks that the CharSequence does not contain certain characters.</p>
2345
     *
2346
     * <p>A {@code null} CharSequence will return {@code true}.
2347
     * A {@code null} invalid character array will return {@code true}.
2348
     * An empty CharSequence (length()=0) always returns true.</p>
2349
     *
2350
     * <pre>
2351
     * StringUtils.containsNone(null, *)       = true
2352
     * StringUtils.containsNone(*, null)       = true
2353
     * StringUtils.containsNone("", *)         = true
2354
     * StringUtils.containsNone("ab", '')      = true
2355
     * StringUtils.containsNone("abab", 'xyz') = true
2356
     * StringUtils.containsNone("ab1", 'xyz')  = true
2357
     * StringUtils.containsNone("abz", 'xyz')  = false
2358
     * </pre>
2359
     *
2360
     * @param cs  the CharSequence to check, may be null
2361
     * @param searchChars  an array of invalid chars, may be null
2362
     * @return true if it contains none of the invalid chars, or is null
2363
     * @since 2.0
2364
     * @since 3.0 Changed signature from containsNone(String, char[]) to containsNone(CharSequence, char...)
2365
     */
2366
    public static boolean containsNone(final CharSequence cs, final char... searchChars) {
2367 2 1. containsNone : negated conditional → KILLED
2. containsNone : negated conditional → KILLED
        if (cs == null || searchChars == null) {
2368 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2369
        }
2370
        final int csLen = cs.length();
2371 1 1. containsNone : Replaced integer subtraction with addition → KILLED
        final int csLast = csLen - 1;
2372
        final int searchLen = searchChars.length;
2373 1 1. containsNone : Replaced integer subtraction with addition → KILLED
        final int searchLast = searchLen - 1;
2374 3 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Changed increment from 1 to -1 → KILLED
3. containsNone : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
2375
            final char ch = cs.charAt(i);
2376 3 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Changed increment from 1 to -1 → KILLED
3. containsNone : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
2377 1 1. containsNone : negated conditional → KILLED
                if (searchChars[j] == ch) {
2378 1 1. containsNone : negated conditional → KILLED
                    if (Character.isHighSurrogate(ch)) {
2379 1 1. containsNone : negated conditional → KILLED
                        if (j == searchLast) {
2380
                            // missing low surrogate, fine, like String.indexOf(String)
2381 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return false;
2382
                        }
2383 5 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Replaced integer addition with subtraction → KILLED
3. containsNone : Replaced integer addition with subtraction → KILLED
4. containsNone : negated conditional → KILLED
5. containsNone : negated conditional → KILLED
                        if (i < csLast && searchChars[j + 1] == cs.charAt(i + 1)) {
2384 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return false;
2385
                        }
2386
                    } else {
2387
                        // ch is in the Basic Multilingual Plane
2388 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return false;
2389
                    }
2390
                }
2391
            }
2392
        }
2393 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
2394
    }
2395
2396
    /**
2397
     * <p>Checks that the CharSequence does not contain certain characters.</p>
2398
     *
2399
     * <p>A {@code null} CharSequence will return {@code true}.
2400
     * A {@code null} invalid character array will return {@code true}.
2401
     * An empty String ("") always returns true.</p>
2402
     *
2403
     * <pre>
2404
     * StringUtils.containsNone(null, *)       = true
2405
     * StringUtils.containsNone(*, null)       = true
2406
     * StringUtils.containsNone("", *)         = true
2407
     * StringUtils.containsNone("ab", "")      = true
2408
     * StringUtils.containsNone("abab", "xyz") = true
2409
     * StringUtils.containsNone("ab1", "xyz")  = true
2410
     * StringUtils.containsNone("abz", "xyz")  = false
2411
     * </pre>
2412
     *
2413
     * @param cs  the CharSequence to check, may be null
2414
     * @param invalidChars  a String of invalid chars, may be null
2415
     * @return true if it contains none of the invalid chars, or is null
2416
     * @since 2.0
2417
     * @since 3.0 Changed signature from containsNone(String, String) to containsNone(CharSequence, String)
2418
     */
2419
    public static boolean containsNone(final CharSequence cs, final String invalidChars) {
2420 2 1. containsNone : negated conditional → KILLED
2. containsNone : negated conditional → KILLED
        if (cs == null || invalidChars == null) {
2421 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2422
        }
2423 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsNone(cs, invalidChars.toCharArray());
2424
    }
2425
2426
    // IndexOfAny strings
2427
    //-----------------------------------------------------------------------
2428
    /**
2429
     * <p>Find the first index of any of a set of potential substrings.</p>
2430
     *
2431
     * <p>A {@code null} CharSequence will return {@code -1}.
2432
     * A {@code null} or zero length search array will return {@code -1}.
2433
     * A {@code null} search array entry will be ignored, but a search
2434
     * array containing "" will return {@code 0} if {@code str} is not
2435
     * null. This method uses {@link String#indexOf(String)} if possible.</p>
2436
     *
2437
     * <pre>
2438
     * StringUtils.indexOfAny(null, *)                     = -1
2439
     * StringUtils.indexOfAny(*, null)                     = -1
2440
     * StringUtils.indexOfAny(*, [])                       = -1
2441
     * StringUtils.indexOfAny("zzabyycdxx", ["ab","cd"])   = 2
2442
     * StringUtils.indexOfAny("zzabyycdxx", ["cd","ab"])   = 2
2443
     * StringUtils.indexOfAny("zzabyycdxx", ["mn","op"])   = -1
2444
     * StringUtils.indexOfAny("zzabyycdxx", ["zab","aby"]) = 1
2445
     * StringUtils.indexOfAny("zzabyycdxx", [""])          = 0
2446
     * StringUtils.indexOfAny("", [""])                    = 0
2447
     * StringUtils.indexOfAny("", ["a"])                   = -1
2448
     * </pre>
2449
     *
2450
     * @param str  the CharSequence to check, may be null
2451
     * @param searchStrs  the CharSequences to search for, may be null
2452
     * @return the first index of any of the searchStrs in str, -1 if no match
2453
     * @since 3.0 Changed signature from indexOfAny(String, String[]) to indexOfAny(CharSequence, CharSequence...)
2454
     */
2455
    public static int indexOfAny(final CharSequence str, final CharSequence... searchStrs) {
2456 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (str == null || searchStrs == null) {
2457 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2458
        }
2459
        final int sz = searchStrs.length;
2460
2461
        // String's can't have a MAX_VALUEth index.
2462
        int ret = Integer.MAX_VALUE;
2463
2464
        int tmp = 0;
2465 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
2466
            final CharSequence search = searchStrs[i];
2467 1 1. indexOfAny : negated conditional → KILLED
            if (search == null) {
2468
                continue;
2469
            }
2470
            tmp = CharSequenceUtils.indexOf(str, search, 0);
2471 1 1. indexOfAny : negated conditional → KILLED
            if (tmp == INDEX_NOT_FOUND) {
2472
                continue;
2473
            }
2474
2475 2 1. indexOfAny : changed conditional boundary → SURVIVED
2. indexOfAny : negated conditional → KILLED
            if (tmp < ret) {
2476
                ret = tmp;
2477
            }
2478
        }
2479
2480 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ret == Integer.MAX_VALUE ? INDEX_NOT_FOUND : ret;
2481
    }
2482
2483
    /**
2484
     * <p>Find the latest index of any of a set of potential substrings.</p>
2485
     *
2486
     * <p>A {@code null} CharSequence will return {@code -1}.
2487
     * A {@code null} search array will return {@code -1}.
2488
     * A {@code null} or zero length search array entry will be ignored,
2489
     * but a search array containing "" will return the length of {@code str}
2490
     * if {@code str} is not null. This method uses {@link String#indexOf(String)} if possible</p>
2491
     *
2492
     * <pre>
2493
     * StringUtils.lastIndexOfAny(null, *)                   = -1
2494
     * StringUtils.lastIndexOfAny(*, null)                   = -1
2495
     * StringUtils.lastIndexOfAny(*, [])                     = -1
2496
     * StringUtils.lastIndexOfAny(*, [null])                 = -1
2497
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["ab","cd"]) = 6
2498
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["cd","ab"]) = 6
2499
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn","op"]) = -1
2500
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn","op"]) = -1
2501
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn",""])   = 10
2502
     * </pre>
2503
     *
2504
     * @param str  the CharSequence to check, may be null
2505
     * @param searchStrs  the CharSequences to search for, may be null
2506
     * @return the last index of any of the CharSequences, -1 if no match
2507
     * @since 3.0 Changed signature from lastIndexOfAny(String, String[]) to lastIndexOfAny(CharSequence, CharSequence)
2508
     */
2509
    public static int lastIndexOfAny(final CharSequence str, final CharSequence... searchStrs) {
2510 2 1. lastIndexOfAny : negated conditional → KILLED
2. lastIndexOfAny : negated conditional → KILLED
        if (str == null || searchStrs == null) {
2511 1 1. lastIndexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2512
        }
2513
        final int sz = searchStrs.length;
2514
        int ret = INDEX_NOT_FOUND;
2515
        int tmp = 0;
2516 3 1. lastIndexOfAny : changed conditional boundary → KILLED
2. lastIndexOfAny : Changed increment from 1 to -1 → KILLED
3. lastIndexOfAny : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
2517
            final CharSequence search = searchStrs[i];
2518 1 1. lastIndexOfAny : negated conditional → KILLED
            if (search == null) {
2519
                continue;
2520
            }
2521
            tmp = CharSequenceUtils.lastIndexOf(str, search, str.length());
2522 2 1. lastIndexOfAny : changed conditional boundary → SURVIVED
2. lastIndexOfAny : negated conditional → KILLED
            if (tmp > ret) {
2523
                ret = tmp;
2524
            }
2525
        }
2526 1 1. lastIndexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ret;
2527
    }
2528
2529
    // Substring
2530
    //-----------------------------------------------------------------------
2531
    /**
2532
     * <p>Gets a substring from the specified String avoiding exceptions.</p>
2533
     *
2534
     * <p>A negative start position can be used to start {@code n}
2535
     * characters from the end of the String.</p>
2536
     *
2537
     * <p>A {@code null} String will return {@code null}.
2538
     * An empty ("") String will return "".</p>
2539
     *
2540
     * <pre>
2541
     * StringUtils.substring(null, *)   = null
2542
     * StringUtils.substring("", *)     = ""
2543
     * StringUtils.substring("abc", 0)  = "abc"
2544
     * StringUtils.substring("abc", 2)  = "c"
2545
     * StringUtils.substring("abc", 4)  = ""
2546
     * StringUtils.substring("abc", -2) = "bc"
2547
     * StringUtils.substring("abc", -4) = "abc"
2548
     * </pre>
2549
     *
2550
     * @param str  the String to get the substring from, may be null
2551
     * @param start  the position to start from, negative means
2552
     *  count back from the end of the String by this many characters
2553
     * @return substring from start position, {@code null} if null String input
2554
     */
2555
    public static String substring(final String str, int start) {
2556 1 1. substring : negated conditional → KILLED
        if (str == null) {
2557 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2558
        }
2559
2560
        // handle negatives, which means last n characters
2561 2 1. substring : changed conditional boundary → KILLED
2. substring : negated conditional → KILLED
        if (start < 0) {
2562 1 1. substring : Replaced integer addition with subtraction → KILLED
            start = str.length() + start; // remember start is negative
2563
        }
2564
2565 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start < 0) {
2566
            start = 0;
2567
        }
2568 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start > str.length()) {
2569 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2570
        }
2571
2572 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start);
2573
    }
2574
2575
    /**
2576
     * <p>Gets a substring from the specified String avoiding exceptions.</p>
2577
     *
2578
     * <p>A negative start position can be used to start/end {@code n}
2579
     * characters from the end of the String.</p>
2580
     *
2581
     * <p>The returned substring starts with the character in the {@code start}
2582
     * position and ends before the {@code end} position. All position counting is
2583
     * zero-based -- i.e., to start at the beginning of the string use
2584
     * {@code start = 0}. Negative start and end positions can be used to
2585
     * specify offsets relative to the end of the String.</p>
2586
     *
2587
     * <p>If {@code start} is not strictly to the left of {@code end}, ""
2588
     * is returned.</p>
2589
     *
2590
     * <pre>
2591
     * StringUtils.substring(null, *, *)    = null
2592
     * StringUtils.substring("", * ,  *)    = "";
2593
     * StringUtils.substring("abc", 0, 2)   = "ab"
2594
     * StringUtils.substring("abc", 2, 0)   = ""
2595
     * StringUtils.substring("abc", 2, 4)   = "c"
2596
     * StringUtils.substring("abc", 4, 6)   = ""
2597
     * StringUtils.substring("abc", 2, 2)   = ""
2598
     * StringUtils.substring("abc", -2, -1) = "b"
2599
     * StringUtils.substring("abc", -4, 2)  = "ab"
2600
     * </pre>
2601
     *
2602
     * @param str  the String to get the substring from, may be null
2603
     * @param start  the position to start from, negative means
2604
     *  count back from the end of the String by this many characters
2605
     * @param end  the position to end at (exclusive), negative means
2606
     *  count back from the end of the String by this many characters
2607
     * @return substring from start position to end position,
2608
     *  {@code null} if null String input
2609
     */
2610
    public static String substring(final String str, int start, int end) {
2611 1 1. substring : negated conditional → KILLED
        if (str == null) {
2612 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2613
        }
2614
2615
        // handle negatives
2616 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end < 0) {
2617 1 1. substring : Replaced integer addition with subtraction → KILLED
            end = str.length() + end; // remember end is negative
2618
        }
2619 2 1. substring : changed conditional boundary → KILLED
2. substring : negated conditional → KILLED
        if (start < 0) {
2620 1 1. substring : Replaced integer addition with subtraction → KILLED
            start = str.length() + start; // remember start is negative
2621
        }
2622
2623
        // check length next
2624 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end > str.length()) {
2625
            end = str.length();
2626
        }
2627
2628
        // if start is greater than end, return ""
2629 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start > end) {
2630 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2631
        }
2632
2633 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start < 0) {
2634
            start = 0;
2635
        }
2636 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end < 0) {
2637
            end = 0;
2638
        }
2639
2640 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start, end);
2641
    }
2642
2643
    // Left/Right/Mid
2644
    //-----------------------------------------------------------------------
2645
    /**
2646
     * <p>Gets the leftmost {@code len} characters of a String.</p>
2647
     *
2648
     * <p>If {@code len} characters are not available, or the
2649
     * String is {@code null}, the String will be returned without
2650
     * an exception. An empty String is returned if len is negative.</p>
2651
     *
2652
     * <pre>
2653
     * StringUtils.left(null, *)    = null
2654
     * StringUtils.left(*, -ve)     = ""
2655
     * StringUtils.left("", *)      = ""
2656
     * StringUtils.left("abc", 0)   = ""
2657
     * StringUtils.left("abc", 2)   = "ab"
2658
     * StringUtils.left("abc", 4)   = "abc"
2659
     * </pre>
2660
     *
2661
     * @param str  the String to get the leftmost characters from, may be null
2662
     * @param len  the length of the required String
2663
     * @return the leftmost characters, {@code null} if null String input
2664
     */
2665
    public static String left(final String str, final int len) {
2666 1 1. left : negated conditional → KILLED
        if (str == null) {
2667 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2668
        }
2669 2 1. left : changed conditional boundary → SURVIVED
2. left : negated conditional → KILLED
        if (len < 0) {
2670 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2671
        }
2672 2 1. left : changed conditional boundary → SURVIVED
2. left : negated conditional → KILLED
        if (str.length() <= len) {
2673 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2674
        }
2675 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, len);
2676
    }
2677
2678
    /**
2679
     * <p>Gets the rightmost {@code len} characters of a String.</p>
2680
     *
2681
     * <p>If {@code len} characters are not available, or the String
2682
     * is {@code null}, the String will be returned without an
2683
     * an exception. An empty String is returned if len is negative.</p>
2684
     *
2685
     * <pre>
2686
     * StringUtils.right(null, *)    = null
2687
     * StringUtils.right(*, -ve)     = ""
2688
     * StringUtils.right("", *)      = ""
2689
     * StringUtils.right("abc", 0)   = ""
2690
     * StringUtils.right("abc", 2)   = "bc"
2691
     * StringUtils.right("abc", 4)   = "abc"
2692
     * </pre>
2693
     *
2694
     * @param str  the String to get the rightmost characters from, may be null
2695
     * @param len  the length of the required String
2696
     * @return the rightmost characters, {@code null} if null String input
2697
     */
2698
    public static String right(final String str, final int len) {
2699 1 1. right : negated conditional → KILLED
        if (str == null) {
2700 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2701
        }
2702 2 1. right : changed conditional boundary → SURVIVED
2. right : negated conditional → KILLED
        if (len < 0) {
2703 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2704
        }
2705 2 1. right : changed conditional boundary → SURVIVED
2. right : negated conditional → KILLED
        if (str.length() <= len) {
2706 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2707
        }
2708 2 1. right : Replaced integer subtraction with addition → KILLED
2. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(str.length() - len);
2709
    }
2710
2711
    /**
2712
     * <p>Gets {@code len} characters from the middle of a String.</p>
2713
     *
2714
     * <p>If {@code len} characters are not available, the remainder
2715
     * of the String will be returned without an exception. If the
2716
     * String is {@code null}, {@code null} will be returned.
2717
     * An empty String is returned if len is negative or exceeds the
2718
     * length of {@code str}.</p>
2719
     *
2720
     * <pre>
2721
     * StringUtils.mid(null, *, *)    = null
2722
     * StringUtils.mid(*, *, -ve)     = ""
2723
     * StringUtils.mid("", 0, *)      = ""
2724
     * StringUtils.mid("abc", 0, 2)   = "ab"
2725
     * StringUtils.mid("abc", 0, 4)   = "abc"
2726
     * StringUtils.mid("abc", 2, 4)   = "c"
2727
     * StringUtils.mid("abc", 4, 2)   = ""
2728
     * StringUtils.mid("abc", -2, 2)  = "ab"
2729
     * </pre>
2730
     *
2731
     * @param str  the String to get the characters from, may be null
2732
     * @param pos  the position to start from, negative treated as zero
2733
     * @param len  the length of the required String
2734
     * @return the middle characters, {@code null} if null String input
2735
     */
2736
    public static String mid(final String str, int pos, final int len) {
2737 1 1. mid : negated conditional → KILLED
        if (str == null) {
2738 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2739
        }
2740 4 1. mid : changed conditional boundary → SURVIVED
2. mid : changed conditional boundary → SURVIVED
3. mid : negated conditional → KILLED
4. mid : negated conditional → KILLED
        if (len < 0 || pos > str.length()) {
2741 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2742
        }
2743 2 1. mid : changed conditional boundary → SURVIVED
2. mid : negated conditional → KILLED
        if (pos < 0) {
2744
            pos = 0;
2745
        }
2746 3 1. mid : changed conditional boundary → SURVIVED
2. mid : Replaced integer addition with subtraction → KILLED
3. mid : negated conditional → KILLED
        if (str.length() <= pos + len) {
2747 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(pos);
2748
        }
2749 2 1. mid : Replaced integer addition with subtraction → KILLED
2. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos, pos + len);
2750
    }
2751
2752
    // SubStringAfter/SubStringBefore
2753
    //-----------------------------------------------------------------------
2754
    /**
2755
     * <p>Gets the substring before the first occurrence of a separator.
2756
     * The separator is not returned.</p>
2757
     *
2758
     * <p>A {@code null} string input will return {@code null}.
2759
     * An empty ("") string input will return the empty string.
2760
     * A {@code null} separator will return the input string.</p>
2761
     *
2762
     * <p>If nothing is found, the string input is returned.</p>
2763
     *
2764
     * <pre>
2765
     * StringUtils.substringBefore(null, *)      = null
2766
     * StringUtils.substringBefore("", *)        = ""
2767
     * StringUtils.substringBefore("abc", "a")   = ""
2768
     * StringUtils.substringBefore("abcba", "b") = "a"
2769
     * StringUtils.substringBefore("abc", "c")   = "ab"
2770
     * StringUtils.substringBefore("abc", "d")   = "abc"
2771
     * StringUtils.substringBefore("abc", "")    = ""
2772
     * StringUtils.substringBefore("abc", null)  = "abc"
2773
     * </pre>
2774
     *
2775
     * @param str  the String to get a substring from, may be null
2776
     * @param separator  the String to search for, may be null
2777
     * @return the substring before the first occurrence of the separator,
2778
     *  {@code null} if null String input
2779
     * @since 2.0
2780
     */
2781
    public static String substringBefore(final String str, final String separator) {
2782 2 1. substringBefore : negated conditional → KILLED
2. substringBefore : negated conditional → KILLED
        if (isEmpty(str) || separator == null) {
2783 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2784
        }
2785 1 1. substringBefore : negated conditional → KILLED
        if (separator.isEmpty()) {
2786 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2787
        }
2788
        final int pos = str.indexOf(separator);
2789 1 1. substringBefore : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2790 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2791
        }
2792 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, pos);
2793
    }
2794
2795
    /**
2796
     * <p>Gets the substring after the first occurrence of a separator.
2797
     * The separator is not returned.</p>
2798
     *
2799
     * <p>A {@code null} string input will return {@code null}.
2800
     * An empty ("") string input will return the empty string.
2801
     * A {@code null} separator will return the empty string if the
2802
     * input string is not {@code null}.</p>
2803
     *
2804
     * <p>If nothing is found, the empty string is returned.</p>
2805
     *
2806
     * <pre>
2807
     * StringUtils.substringAfter(null, *)      = null
2808
     * StringUtils.substringAfter("", *)        = ""
2809
     * StringUtils.substringAfter(*, null)      = ""
2810
     * StringUtils.substringAfter("abc", "a")   = "bc"
2811
     * StringUtils.substringAfter("abcba", "b") = "cba"
2812
     * StringUtils.substringAfter("abc", "c")   = ""
2813
     * StringUtils.substringAfter("abc", "d")   = ""
2814
     * StringUtils.substringAfter("abc", "")    = "abc"
2815
     * </pre>
2816
     *
2817
     * @param str  the String to get a substring from, may be null
2818
     * @param separator  the String to search for, may be null
2819
     * @return the substring after the first occurrence of the separator,
2820
     *  {@code null} if null String input
2821
     * @since 2.0
2822
     */
2823
    public static String substringAfter(final String str, final String separator) {
2824 1 1. substringAfter : negated conditional → KILLED
        if (isEmpty(str)) {
2825 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2826
        }
2827 1 1. substringAfter : negated conditional → KILLED
        if (separator == null) {
2828 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2829
        }
2830
        final int pos = str.indexOf(separator);
2831 1 1. substringAfter : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2832 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2833
        }
2834 2 1. substringAfter : Replaced integer addition with subtraction → KILLED
2. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos + separator.length());
2835
    }
2836
2837
    /**
2838
     * <p>Gets the substring before the last occurrence of a separator.
2839
     * The separator is not returned.</p>
2840
     *
2841
     * <p>A {@code null} string input will return {@code null}.
2842
     * An empty ("") string input will return the empty string.
2843
     * An empty or {@code null} separator will return the input string.</p>
2844
     *
2845
     * <p>If nothing is found, the string input is returned.</p>
2846
     *
2847
     * <pre>
2848
     * StringUtils.substringBeforeLast(null, *)      = null
2849
     * StringUtils.substringBeforeLast("", *)        = ""
2850
     * StringUtils.substringBeforeLast("abcba", "b") = "abc"
2851
     * StringUtils.substringBeforeLast("abc", "c")   = "ab"
2852
     * StringUtils.substringBeforeLast("a", "a")     = ""
2853
     * StringUtils.substringBeforeLast("a", "z")     = "a"
2854
     * StringUtils.substringBeforeLast("a", null)    = "a"
2855
     * StringUtils.substringBeforeLast("a", "")      = "a"
2856
     * </pre>
2857
     *
2858
     * @param str  the String to get a substring from, may be null
2859
     * @param separator  the String to search for, may be null
2860
     * @return the substring before the last occurrence of the separator,
2861
     *  {@code null} if null String input
2862
     * @since 2.0
2863
     */
2864
    public static String substringBeforeLast(final String str, final String separator) {
2865 2 1. substringBeforeLast : negated conditional → KILLED
2. substringBeforeLast : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(separator)) {
2866 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2867
        }
2868
        final int pos = str.lastIndexOf(separator);
2869 1 1. substringBeforeLast : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2870 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2871
        }
2872 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, pos);
2873
    }
2874
2875
    /**
2876
     * <p>Gets the substring after the last occurrence of a separator.
2877
     * The separator is not returned.</p>
2878
     *
2879
     * <p>A {@code null} string input will return {@code null}.
2880
     * An empty ("") string input will return the empty string.
2881
     * An empty or {@code null} separator will return the empty string if
2882
     * the input string is not {@code null}.</p>
2883
     *
2884
     * <p>If nothing is found, the empty string is returned.</p>
2885
     *
2886
     * <pre>
2887
     * StringUtils.substringAfterLast(null, *)      = null
2888
     * StringUtils.substringAfterLast("", *)        = ""
2889
     * StringUtils.substringAfterLast(*, "")        = ""
2890
     * StringUtils.substringAfterLast(*, null)      = ""
2891
     * StringUtils.substringAfterLast("abc", "a")   = "bc"
2892
     * StringUtils.substringAfterLast("abcba", "b") = "a"
2893
     * StringUtils.substringAfterLast("abc", "c")   = ""
2894
     * StringUtils.substringAfterLast("a", "a")     = ""
2895
     * StringUtils.substringAfterLast("a", "z")     = ""
2896
     * </pre>
2897
     *
2898
     * @param str  the String to get a substring from, may be null
2899
     * @param separator  the String to search for, may be null
2900
     * @return the substring after the last occurrence of the separator,
2901
     *  {@code null} if null String input
2902
     * @since 2.0
2903
     */
2904
    public static String substringAfterLast(final String str, final String separator) {
2905 1 1. substringAfterLast : negated conditional → KILLED
        if (isEmpty(str)) {
2906 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2907
        }
2908 1 1. substringAfterLast : negated conditional → KILLED
        if (isEmpty(separator)) {
2909 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2910
        }
2911
        final int pos = str.lastIndexOf(separator);
2912 3 1. substringAfterLast : Replaced integer subtraction with addition → SURVIVED
2. substringAfterLast : negated conditional → KILLED
3. substringAfterLast : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND || pos == str.length() - separator.length()) {
2913 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2914
        }
2915 2 1. substringAfterLast : Replaced integer addition with subtraction → KILLED
2. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos + separator.length());
2916
    }
2917
2918
    // Substring between
2919
    //-----------------------------------------------------------------------
2920
    /**
2921
     * <p>Gets the String that is nested in between two instances of the
2922
     * same String.</p>
2923
     *
2924
     * <p>A {@code null} input String returns {@code null}.
2925
     * A {@code null} tag returns {@code null}.</p>
2926
     *
2927
     * <pre>
2928
     * StringUtils.substringBetween(null, *)            = null
2929
     * StringUtils.substringBetween("", "")             = ""
2930
     * StringUtils.substringBetween("", "tag")          = null
2931
     * StringUtils.substringBetween("tagabctag", null)  = null
2932
     * StringUtils.substringBetween("tagabctag", "")    = ""
2933
     * StringUtils.substringBetween("tagabctag", "tag") = "abc"
2934
     * </pre>
2935
     *
2936
     * @param str  the String containing the substring, may be null
2937
     * @param tag  the String before and after the substring, may be null
2938
     * @return the substring, {@code null} if no match
2939
     * @since 2.0
2940
     */
2941
    public static String substringBetween(final String str, final String tag) {
2942 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return substringBetween(str, tag, tag);
2943
    }
2944
2945
    /**
2946
     * <p>Gets the String that is nested in between two Strings.
2947
     * Only the first match is returned.</p>
2948
     *
2949
     * <p>A {@code null} input String returns {@code null}.
2950
     * A {@code null} open/close returns {@code null} (no match).
2951
     * An empty ("") open and close returns an empty string.</p>
2952
     *
2953
     * <pre>
2954
     * StringUtils.substringBetween("wx[b]yz", "[", "]") = "b"
2955
     * StringUtils.substringBetween(null, *, *)          = null
2956
     * StringUtils.substringBetween(*, null, *)          = null
2957
     * StringUtils.substringBetween(*, *, null)          = null
2958
     * StringUtils.substringBetween("", "", "")          = ""
2959
     * StringUtils.substringBetween("", "", "]")         = null
2960
     * StringUtils.substringBetween("", "[", "]")        = null
2961
     * StringUtils.substringBetween("yabcz", "", "")     = ""
2962
     * StringUtils.substringBetween("yabcz", "y", "z")   = "abc"
2963
     * StringUtils.substringBetween("yabczyabcz", "y", "z")   = "abc"
2964
     * </pre>
2965
     *
2966
     * @param str  the String containing the substring, may be null
2967
     * @param open  the String before the substring, may be null
2968
     * @param close  the String after the substring, may be null
2969
     * @return the substring, {@code null} if no match
2970
     * @since 2.0
2971
     */
2972
    public static String substringBetween(final String str, final String open, final String close) {
2973 3 1. substringBetween : negated conditional → KILLED
2. substringBetween : negated conditional → KILLED
3. substringBetween : negated conditional → KILLED
        if (str == null || open == null || close == null) {
2974 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2975
        }
2976
        final int start = str.indexOf(open);
2977 1 1. substringBetween : negated conditional → KILLED
        if (start != INDEX_NOT_FOUND) {
2978 1 1. substringBetween : Replaced integer addition with subtraction → KILLED
            final int end = str.indexOf(close, start + open.length());
2979 1 1. substringBetween : negated conditional → KILLED
            if (end != INDEX_NOT_FOUND) {
2980 2 1. substringBetween : Replaced integer addition with subtraction → KILLED
2. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(start + open.length(), end);
2981
            }
2982
        }
2983 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return null;
2984
    }
2985
2986
    /**
2987
     * <p>Searches a String for substrings delimited by a start and end tag,
2988
     * returning all matching substrings in an array.</p>
2989
     *
2990
     * <p>A {@code null} input String returns {@code null}.
2991
     * A {@code null} open/close returns {@code null} (no match).
2992
     * An empty ("") open/close returns {@code null} (no match).</p>
2993
     *
2994
     * <pre>
2995
     * StringUtils.substringsBetween("[a][b][c]", "[", "]") = ["a","b","c"]
2996
     * StringUtils.substringsBetween(null, *, *)            = null
2997
     * StringUtils.substringsBetween(*, null, *)            = null
2998
     * StringUtils.substringsBetween(*, *, null)            = null
2999
     * StringUtils.substringsBetween("", "[", "]")          = []
3000
     * </pre>
3001
     *
3002
     * @param str  the String containing the substrings, null returns null, empty returns empty
3003
     * @param open  the String identifying the start of the substring, empty returns null
3004
     * @param close  the String identifying the end of the substring, empty returns null
3005
     * @return a String Array of substrings, or {@code null} if no match
3006
     * @since 2.3
3007
     */
3008
    public static String[] substringsBetween(final String str, final String open, final String close) {
3009 3 1. substringsBetween : negated conditional → KILLED
2. substringsBetween : negated conditional → KILLED
3. substringsBetween : negated conditional → KILLED
        if (str == null || isEmpty(open) || isEmpty(close)) {
3010 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3011
        }
3012
        final int strLen = str.length();
3013 1 1. substringsBetween : negated conditional → KILLED
        if (strLen == 0) {
3014 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3015
        }
3016
        final int closeLen = close.length();
3017
        final int openLen = open.length();
3018
        final List<String> list = new ArrayList<>();
3019
        int pos = 0;
3020 3 1. substringsBetween : changed conditional boundary → SURVIVED
2. substringsBetween : Replaced integer subtraction with addition → SURVIVED
3. substringsBetween : negated conditional → KILLED
        while (pos < strLen - closeLen) {
3021
            int start = str.indexOf(open, pos);
3022 2 1. substringsBetween : changed conditional boundary → KILLED
2. substringsBetween : negated conditional → KILLED
            if (start < 0) {
3023
                break;
3024
            }
3025 1 1. substringsBetween : Replaced integer addition with subtraction → KILLED
            start += openLen;
3026
            final int end = str.indexOf(close, start);
3027 2 1. substringsBetween : changed conditional boundary → SURVIVED
2. substringsBetween : negated conditional → KILLED
            if (end < 0) {
3028
                break;
3029
            }
3030
            list.add(str.substring(start, end));
3031 1 1. substringsBetween : Replaced integer addition with subtraction → KILLED
            pos = end + closeLen;
3032
        }
3033 1 1. substringsBetween : negated conditional → KILLED
        if (list.isEmpty()) {
3034 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3035
        }
3036 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String [list.size()]);
3037
    }
3038
3039
    // Nested extraction
3040
    //-----------------------------------------------------------------------
3041
3042
    // Splitting
3043
    //-----------------------------------------------------------------------
3044
    /**
3045
     * <p>Splits the provided text into an array, using whitespace as the
3046
     * separator.
3047
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3048
     *
3049
     * <p>The separator is not included in the returned String array.
3050
     * Adjacent separators are treated as one separator.
3051
     * For more control over the split use the StrTokenizer class.</p>
3052
     *
3053
     * <p>A {@code null} input String returns {@code null}.</p>
3054
     *
3055
     * <pre>
3056
     * StringUtils.split(null)       = null
3057
     * StringUtils.split("")         = []
3058
     * StringUtils.split("abc def")  = ["abc", "def"]
3059
     * StringUtils.split("abc  def") = ["abc", "def"]
3060
     * StringUtils.split(" abc ")    = ["abc"]
3061
     * </pre>
3062
     *
3063
     * @param str  the String to parse, may be null
3064
     * @return an array of parsed Strings, {@code null} if null String input
3065
     */
3066
    public static String[] split(final String str) {
3067 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return split(str, null, -1);
3068
    }
3069
3070
    /**
3071
     * <p>Splits the provided text into an array, separator specified.
3072
     * This is an alternative to using StringTokenizer.</p>
3073
     *
3074
     * <p>The separator is not included in the returned String array.
3075
     * Adjacent separators are treated as one separator.
3076
     * For more control over the split use the StrTokenizer class.</p>
3077
     *
3078
     * <p>A {@code null} input String returns {@code null}.</p>
3079
     *
3080
     * <pre>
3081
     * StringUtils.split(null, *)         = null
3082
     * StringUtils.split("", *)           = []
3083
     * StringUtils.split("a.b.c", '.')    = ["a", "b", "c"]
3084
     * StringUtils.split("a..b.c", '.')   = ["a", "b", "c"]
3085
     * StringUtils.split("a:b:c", '.')    = ["a:b:c"]
3086
     * StringUtils.split("a b c", ' ')    = ["a", "b", "c"]
3087
     * </pre>
3088
     *
3089
     * @param str  the String to parse, may be null
3090
     * @param separatorChar  the character used as the delimiter
3091
     * @return an array of parsed Strings, {@code null} if null String input
3092
     * @since 2.0
3093
     */
3094
    public static String[] split(final String str, final char separatorChar) {
3095 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChar, false);
3096
    }
3097
3098
    /**
3099
     * <p>Splits the provided text into an array, separators specified.
3100
     * This is an alternative to using StringTokenizer.</p>
3101
     *
3102
     * <p>The separator is not included in the returned String array.
3103
     * Adjacent separators are treated as one separator.
3104
     * For more control over the split use the StrTokenizer class.</p>
3105
     *
3106
     * <p>A {@code null} input String returns {@code null}.
3107
     * A {@code null} separatorChars splits on whitespace.</p>
3108
     *
3109
     * <pre>
3110
     * StringUtils.split(null, *)         = null
3111
     * StringUtils.split("", *)           = []
3112
     * StringUtils.split("abc def", null) = ["abc", "def"]
3113
     * StringUtils.split("abc def", " ")  = ["abc", "def"]
3114
     * StringUtils.split("abc  def", " ") = ["abc", "def"]
3115
     * StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]
3116
     * </pre>
3117
     *
3118
     * @param str  the String to parse, may be null
3119
     * @param separatorChars  the characters used as the delimiters,
3120
     *  {@code null} splits on whitespace
3121
     * @return an array of parsed Strings, {@code null} if null String input
3122
     */
3123
    public static String[] split(final String str, final String separatorChars) {
3124 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, -1, false);
3125
    }
3126
3127
    /**
3128
     * <p>Splits the provided text into an array with a maximum length,
3129
     * separators specified.</p>
3130
     *
3131
     * <p>The separator is not included in the returned String array.
3132
     * Adjacent separators are treated as one separator.</p>
3133
     *
3134
     * <p>A {@code null} input String returns {@code null}.
3135
     * A {@code null} separatorChars splits on whitespace.</p>
3136
     *
3137
     * <p>If more than {@code max} delimited substrings are found, the last
3138
     * returned string includes all characters after the first {@code max - 1}
3139
     * returned strings (including separator characters).</p>
3140
     *
3141
     * <pre>
3142
     * StringUtils.split(null, *, *)            = null
3143
     * StringUtils.split("", *, *)              = []
3144
     * StringUtils.split("ab cd ef", null, 0)   = ["ab", "cd", "ef"]
3145
     * StringUtils.split("ab   cd ef", null, 0) = ["ab", "cd", "ef"]
3146
     * StringUtils.split("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]
3147
     * StringUtils.split("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]
3148
     * </pre>
3149
     *
3150
     * @param str  the String to parse, may be null
3151
     * @param separatorChars  the characters used as the delimiters,
3152
     *  {@code null} splits on whitespace
3153
     * @param max  the maximum number of elements to include in the
3154
     *  array. A zero or negative value implies no limit
3155
     * @return an array of parsed Strings, {@code null} if null String input
3156
     */
3157
    public static String[] split(final String str, final String separatorChars, final int max) {
3158 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, max, false);
3159
    }
3160
3161
    /**
3162
     * <p>Splits the provided text into an array, separator string specified.</p>
3163
     *
3164
     * <p>The separator(s) will not be included in the returned String array.
3165
     * Adjacent separators are treated as one separator.</p>
3166
     *
3167
     * <p>A {@code null} input String returns {@code null}.
3168
     * A {@code null} separator splits on whitespace.</p>
3169
     *
3170
     * <pre>
3171
     * StringUtils.splitByWholeSeparator(null, *)               = null
3172
     * StringUtils.splitByWholeSeparator("", *)                 = []
3173
     * StringUtils.splitByWholeSeparator("ab de fg", null)      = ["ab", "de", "fg"]
3174
     * StringUtils.splitByWholeSeparator("ab   de fg", null)    = ["ab", "de", "fg"]
3175
     * StringUtils.splitByWholeSeparator("ab:cd:ef", ":")       = ["ab", "cd", "ef"]
3176
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]
3177
     * </pre>
3178
     *
3179
     * @param str  the String to parse, may be null
3180
     * @param separator  String containing the String to be used as a delimiter,
3181
     *  {@code null} splits on whitespace
3182
     * @return an array of parsed Strings, {@code null} if null String was input
3183
     */
3184
    public static String[] splitByWholeSeparator(final String str, final String separator) {
3185 1 1. splitByWholeSeparator : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker( str, separator, -1, false ) ;
3186
    }
3187
3188
    /**
3189
     * <p>Splits the provided text into an array, separator string specified.
3190
     * Returns a maximum of {@code max} substrings.</p>
3191
     *
3192
     * <p>The separator(s) will not be included in the returned String array.
3193
     * Adjacent separators are treated as one separator.</p>
3194
     *
3195
     * <p>A {@code null} input String returns {@code null}.
3196
     * A {@code null} separator splits on whitespace.</p>
3197
     *
3198
     * <pre>
3199
     * StringUtils.splitByWholeSeparator(null, *, *)               = null
3200
     * StringUtils.splitByWholeSeparator("", *, *)                 = []
3201
     * StringUtils.splitByWholeSeparator("ab de fg", null, 0)      = ["ab", "de", "fg"]
3202
     * StringUtils.splitByWholeSeparator("ab   de fg", null, 0)    = ["ab", "de", "fg"]
3203
     * StringUtils.splitByWholeSeparator("ab:cd:ef", ":", 2)       = ["ab", "cd:ef"]
3204
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 5) = ["ab", "cd", "ef"]
3205
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 2) = ["ab", "cd-!-ef"]
3206
     * </pre>
3207
     *
3208
     * @param str  the String to parse, may be null
3209
     * @param separator  String containing the String to be used as a delimiter,
3210
     *  {@code null} splits on whitespace
3211
     * @param max  the maximum number of elements to include in the returned
3212
     *  array. A zero or negative value implies no limit.
3213
     * @return an array of parsed Strings, {@code null} if null String was input
3214
     */
3215
    public static String[] splitByWholeSeparator( final String str, final String separator, final int max) {
3216 1 1. splitByWholeSeparator : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker(str, separator, max, false);
3217
    }
3218
3219
    /**
3220
     * <p>Splits the provided text into an array, separator string specified. </p>
3221
     *
3222
     * <p>The separator is not included in the returned String array.
3223
     * Adjacent separators are treated as separators for empty tokens.
3224
     * For more control over the split use the StrTokenizer class.</p>
3225
     *
3226
     * <p>A {@code null} input String returns {@code null}.
3227
     * A {@code null} separator splits on whitespace.</p>
3228
     *
3229
     * <pre>
3230
     * StringUtils.splitByWholeSeparatorPreserveAllTokens(null, *)               = null
3231
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("", *)                 = []
3232
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab de fg", null)      = ["ab", "de", "fg"]
3233
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab   de fg", null)    = ["ab", "", "", "de", "fg"]
3234
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab:cd:ef", ":")       = ["ab", "cd", "ef"]
3235
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]
3236
     * </pre>
3237
     *
3238
     * @param str  the String to parse, may be null
3239
     * @param separator  String containing the String to be used as a delimiter,
3240
     *  {@code null} splits on whitespace
3241
     * @return an array of parsed Strings, {@code null} if null String was input
3242
     * @since 2.4
3243
     */
3244
    public static String[] splitByWholeSeparatorPreserveAllTokens(final String str, final String separator) {
3245 1 1. splitByWholeSeparatorPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
        return splitByWholeSeparatorWorker(str, separator, -1, true);
3246
    }
3247
3248
    /**
3249
     * <p>Splits the provided text into an array, separator string specified.
3250
     * Returns a maximum of {@code max} substrings.</p>
3251
     *
3252
     * <p>The separator is not included in the returned String array.
3253
     * Adjacent separators are treated as separators for empty tokens.
3254
     * For more control over the split use the StrTokenizer class.</p>
3255
     *
3256
     * <p>A {@code null} input String returns {@code null}.
3257
     * A {@code null} separator splits on whitespace.</p>
3258
     *
3259
     * <pre>
3260
     * StringUtils.splitByWholeSeparatorPreserveAllTokens(null, *, *)               = null
3261
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("", *, *)                 = []
3262
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab de fg", null, 0)      = ["ab", "de", "fg"]
3263
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab   de fg", null, 0)    = ["ab", "", "", "de", "fg"]
3264
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab:cd:ef", ":", 2)       = ["ab", "cd:ef"]
3265
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-", 5) = ["ab", "cd", "ef"]
3266
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-", 2) = ["ab", "cd-!-ef"]
3267
     * </pre>
3268
     *
3269
     * @param str  the String to parse, may be null
3270
     * @param separator  String containing the String to be used as a delimiter,
3271
     *  {@code null} splits on whitespace
3272
     * @param max  the maximum number of elements to include in the returned
3273
     *  array. A zero or negative value implies no limit.
3274
     * @return an array of parsed Strings, {@code null} if null String was input
3275
     * @since 2.4
3276
     */
3277
    public static String[] splitByWholeSeparatorPreserveAllTokens(final String str, final String separator, final int max) {
3278 1 1. splitByWholeSeparatorPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker(str, separator, max, true);
3279
    }
3280
3281
    /**
3282
     * Performs the logic for the {@code splitByWholeSeparatorPreserveAllTokens} methods.
3283
     *
3284
     * @param str  the String to parse, may be {@code null}
3285
     * @param separator  String containing the String to be used as a delimiter,
3286
     *  {@code null} splits on whitespace
3287
     * @param max  the maximum number of elements to include in the returned
3288
     *  array. A zero or negative value implies no limit.
3289
     * @param preserveAllTokens if {@code true}, adjacent separators are
3290
     * treated as empty token separators; if {@code false}, adjacent
3291
     * separators are treated as one separator.
3292
     * @return an array of parsed Strings, {@code null} if null String input
3293
     * @since 2.4
3294
     */
3295
    private static String[] splitByWholeSeparatorWorker(
3296
            final String str, final String separator, final int max, final boolean preserveAllTokens) {
3297 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (str == null) {
3298 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3299
        }
3300
3301
        final int len = str.length();
3302
3303 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (len == 0) {
3304 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3305
        }
3306
3307 2 1. splitByWholeSeparatorWorker : negated conditional → KILLED
2. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (separator == null || EMPTY.equals(separator)) {
3308
            // Split on whitespace.
3309 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return splitWorker(str, null, max, preserveAllTokens);
3310
        }
3311
3312
        final int separatorLength = separator.length();
3313
3314
        final ArrayList<String> substrings = new ArrayList<>();
3315
        int numberOfSubstrings = 0;
3316
        int beg = 0;
3317
        int end = 0;
3318 2 1. splitByWholeSeparatorWorker : changed conditional boundary → TIMED_OUT
2. splitByWholeSeparatorWorker : negated conditional → KILLED
        while (end < len) {
3319
            end = str.indexOf(separator, beg);
3320
3321 2 1. splitByWholeSeparatorWorker : changed conditional boundary → TIMED_OUT
2. splitByWholeSeparatorWorker : negated conditional → KILLED
            if (end > -1) {
3322 2 1. splitByWholeSeparatorWorker : changed conditional boundary → KILLED
2. splitByWholeSeparatorWorker : negated conditional → KILLED
                if (end > beg) {
3323 1 1. splitByWholeSeparatorWorker : Changed increment from 1 to -1 → KILLED
                    numberOfSubstrings += 1;
3324
3325 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                    if (numberOfSubstrings == max) {
3326
                        end = len;
3327
                        substrings.add(str.substring(beg));
3328
                    } else {
3329
                        // The following is OK, because String.substring( beg, end ) excludes
3330
                        // the character at the position 'end'.
3331
                        substrings.add(str.substring(beg, end));
3332
3333
                        // Set the starting point for the next search.
3334
                        // The following is equivalent to beg = end + (separatorLength - 1) + 1,
3335
                        // which is the right calculation:
3336 1 1. splitByWholeSeparatorWorker : Replaced integer addition with subtraction → KILLED
                        beg = end + separatorLength;
3337
                    }
3338
                } else {
3339
                    // We found a consecutive occurrence of the separator, so skip it.
3340 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                    if (preserveAllTokens) {
3341 1 1. splitByWholeSeparatorWorker : Changed increment from 1 to -1 → KILLED
                        numberOfSubstrings += 1;
3342 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                        if (numberOfSubstrings == max) {
3343
                            end = len;
3344
                            substrings.add(str.substring(beg));
3345
                        } else {
3346
                            substrings.add(EMPTY);
3347
                        }
3348
                    }
3349 1 1. splitByWholeSeparatorWorker : Replaced integer addition with subtraction → TIMED_OUT
                    beg = end + separatorLength;
3350
                }
3351
            } else {
3352
                // String.substring( beg ) goes from 'beg' to the end of the String.
3353
                substrings.add(str.substring(beg));
3354
                end = len;
3355
            }
3356
        }
3357
3358 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return substrings.toArray(new String[substrings.size()]);
3359
    }
3360
3361
    // -----------------------------------------------------------------------
3362
    /**
3363
     * <p>Splits the provided text into an array, using whitespace as the
3364
     * separator, preserving all tokens, including empty tokens created by
3365
     * adjacent separators. This is an alternative to using StringTokenizer.
3366
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3367
     *
3368
     * <p>The separator is not included in the returned String array.
3369
     * Adjacent separators are treated as separators for empty tokens.
3370
     * For more control over the split use the StrTokenizer class.</p>
3371
     *
3372
     * <p>A {@code null} input String returns {@code null}.</p>
3373
     *
3374
     * <pre>
3375
     * StringUtils.splitPreserveAllTokens(null)       = null
3376
     * StringUtils.splitPreserveAllTokens("")         = []
3377
     * StringUtils.splitPreserveAllTokens("abc def")  = ["abc", "def"]
3378
     * StringUtils.splitPreserveAllTokens("abc  def") = ["abc", "", "def"]
3379
     * StringUtils.splitPreserveAllTokens(" abc ")    = ["", "abc", ""]
3380
     * </pre>
3381
     *
3382
     * @param str  the String to parse, may be {@code null}
3383
     * @return an array of parsed Strings, {@code null} if null String input
3384
     * @since 2.1
3385
     */
3386
    public static String[] splitPreserveAllTokens(final String str) {
3387 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, null, -1, true);
3388
    }
3389
3390
    /**
3391
     * <p>Splits the provided text into an array, separator specified,
3392
     * preserving all tokens, including empty tokens created by adjacent
3393
     * separators. This is an alternative to using StringTokenizer.</p>
3394
     *
3395
     * <p>The separator is not included in the returned String array.
3396
     * Adjacent separators are treated as separators for empty tokens.
3397
     * For more control over the split use the StrTokenizer class.</p>
3398
     *
3399
     * <p>A {@code null} input String returns {@code null}.</p>
3400
     *
3401
     * <pre>
3402
     * StringUtils.splitPreserveAllTokens(null, *)         = null
3403
     * StringUtils.splitPreserveAllTokens("", *)           = []
3404
     * StringUtils.splitPreserveAllTokens("a.b.c", '.')    = ["a", "b", "c"]
3405
     * StringUtils.splitPreserveAllTokens("a..b.c", '.')   = ["a", "", "b", "c"]
3406
     * StringUtils.splitPreserveAllTokens("a:b:c", '.')    = ["a:b:c"]
3407
     * StringUtils.splitPreserveAllTokens("a\tb\nc", null) = ["a", "b", "c"]
3408
     * StringUtils.splitPreserveAllTokens("a b c", ' ')    = ["a", "b", "c"]
3409
     * StringUtils.splitPreserveAllTokens("a b c ", ' ')   = ["a", "b", "c", ""]
3410
     * StringUtils.splitPreserveAllTokens("a b c  ", ' ')   = ["a", "b", "c", "", ""]
3411
     * StringUtils.splitPreserveAllTokens(" a b c", ' ')   = ["", a", "b", "c"]
3412
     * StringUtils.splitPreserveAllTokens("  a b c", ' ')  = ["", "", a", "b", "c"]
3413
     * StringUtils.splitPreserveAllTokens(" a b c ", ' ')  = ["", a", "b", "c", ""]
3414
     * </pre>
3415
     *
3416
     * @param str  the String to parse, may be {@code null}
3417
     * @param separatorChar  the character used as the delimiter,
3418
     *  {@code null} splits on whitespace
3419
     * @return an array of parsed Strings, {@code null} if null String input
3420
     * @since 2.1
3421
     */
3422
    public static String[] splitPreserveAllTokens(final String str, final char separatorChar) {
3423 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChar, true);
3424
    }
3425
3426
    /**
3427
     * Performs the logic for the {@code split} and
3428
     * {@code splitPreserveAllTokens} methods that do not return a
3429
     * maximum array length.
3430
     *
3431
     * @param str  the String to parse, may be {@code null}
3432
     * @param separatorChar the separate character
3433
     * @param preserveAllTokens if {@code true}, adjacent separators are
3434
     * treated as empty token separators; if {@code false}, adjacent
3435
     * separators are treated as one separator.
3436
     * @return an array of parsed Strings, {@code null} if null String input
3437
     */
3438
    private static String[] splitWorker(final String str, final char separatorChar, final boolean preserveAllTokens) {
3439
        // Performance tuned for 2.0 (JDK1.4)
3440
3441 1 1. splitWorker : negated conditional → KILLED
        if (str == null) {
3442 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3443
        }
3444
        final int len = str.length();
3445 1 1. splitWorker : negated conditional → KILLED
        if (len == 0) {
3446 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3447
        }
3448
        final List<String> list = new ArrayList<>();
3449
        int i = 0, start = 0;
3450
        boolean match = false;
3451
        boolean lastMatch = false;
3452 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
        while (i < len) {
3453 1 1. splitWorker : negated conditional → KILLED
            if (str.charAt(i) == separatorChar) {
3454 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                if (match || preserveAllTokens) {
3455
                    list.add(str.substring(start, i));
3456
                    match = false;
3457
                    lastMatch = true;
3458
                }
3459 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                start = ++i;
3460
                continue;
3461
            }
3462
            lastMatch = false;
3463
            match = true;
3464 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
            i++;
3465
        }
3466 3 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
3. splitWorker : negated conditional → KILLED
        if (match || preserveAllTokens && lastMatch) {
3467
            list.add(str.substring(start, i));
3468
        }
3469 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3470
    }
3471
3472
    /**
3473
     * <p>Splits the provided text into an array, separators specified,
3474
     * preserving all tokens, including empty tokens created by adjacent
3475
     * separators. This is an alternative to using StringTokenizer.</p>
3476
     *
3477
     * <p>The separator is not included in the returned String array.
3478
     * Adjacent separators are treated as separators for empty tokens.
3479
     * For more control over the split use the StrTokenizer class.</p>
3480
     *
3481
     * <p>A {@code null} input String returns {@code null}.
3482
     * A {@code null} separatorChars splits on whitespace.</p>
3483
     *
3484
     * <pre>
3485
     * StringUtils.splitPreserveAllTokens(null, *)           = null
3486
     * StringUtils.splitPreserveAllTokens("", *)             = []
3487
     * StringUtils.splitPreserveAllTokens("abc def", null)   = ["abc", "def"]
3488
     * StringUtils.splitPreserveAllTokens("abc def", " ")    = ["abc", "def"]
3489
     * StringUtils.splitPreserveAllTokens("abc  def", " ")   = ["abc", "", def"]
3490
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":")   = ["ab", "cd", "ef"]
3491
     * StringUtils.splitPreserveAllTokens("ab:cd:ef:", ":")  = ["ab", "cd", "ef", ""]
3492
     * StringUtils.splitPreserveAllTokens("ab:cd:ef::", ":") = ["ab", "cd", "ef", "", ""]
3493
     * StringUtils.splitPreserveAllTokens("ab::cd:ef", ":")  = ["ab", "", cd", "ef"]
3494
     * StringUtils.splitPreserveAllTokens(":cd:ef", ":")     = ["", cd", "ef"]
3495
     * StringUtils.splitPreserveAllTokens("::cd:ef", ":")    = ["", "", cd", "ef"]
3496
     * StringUtils.splitPreserveAllTokens(":cd:ef:", ":")    = ["", cd", "ef", ""]
3497
     * </pre>
3498
     *
3499
     * @param str  the String to parse, may be {@code null}
3500
     * @param separatorChars  the characters used as the delimiters,
3501
     *  {@code null} splits on whitespace
3502
     * @return an array of parsed Strings, {@code null} if null String input
3503
     * @since 2.1
3504
     */
3505
    public static String[] splitPreserveAllTokens(final String str, final String separatorChars) {
3506 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, -1, true);
3507
    }
3508
3509
    /**
3510
     * <p>Splits the provided text into an array with a maximum length,
3511
     * separators specified, preserving all tokens, including empty tokens
3512
     * created by adjacent separators.</p>
3513
     *
3514
     * <p>The separator is not included in the returned String array.
3515
     * Adjacent separators are treated as separators for empty tokens.
3516
     * Adjacent separators are treated as one separator.</p>
3517
     *
3518
     * <p>A {@code null} input String returns {@code null}.
3519
     * A {@code null} separatorChars splits on whitespace.</p>
3520
     *
3521
     * <p>If more than {@code max} delimited substrings are found, the last
3522
     * returned string includes all characters after the first {@code max - 1}
3523
     * returned strings (including separator characters).</p>
3524
     *
3525
     * <pre>
3526
     * StringUtils.splitPreserveAllTokens(null, *, *)            = null
3527
     * StringUtils.splitPreserveAllTokens("", *, *)              = []
3528
     * StringUtils.splitPreserveAllTokens("ab de fg", null, 0)   = ["ab", "cd", "ef"]
3529
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 0) = ["ab", "cd", "ef"]
3530
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]
3531
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]
3532
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 2) = ["ab", "  de fg"]
3533
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 3) = ["ab", "", " de fg"]
3534
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 4) = ["ab", "", "", "de fg"]
3535
     * </pre>
3536
     *
3537
     * @param str  the String to parse, may be {@code null}
3538
     * @param separatorChars  the characters used as the delimiters,
3539
     *  {@code null} splits on whitespace
3540
     * @param max  the maximum number of elements to include in the
3541
     *  array. A zero or negative value implies no limit
3542
     * @return an array of parsed Strings, {@code null} if null String input
3543
     * @since 2.1
3544
     */
3545
    public static String[] splitPreserveAllTokens(final String str, final String separatorChars, final int max) {
3546 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, max, true);
3547
    }
3548
3549
    /**
3550
     * Performs the logic for the {@code split} and
3551
     * {@code splitPreserveAllTokens} methods that return a maximum array
3552
     * length.
3553
     *
3554
     * @param str  the String to parse, may be {@code null}
3555
     * @param separatorChars the separate character
3556
     * @param max  the maximum number of elements to include in the
3557
     *  array. A zero or negative value implies no limit.
3558
     * @param preserveAllTokens if {@code true}, adjacent separators are
3559
     * treated as empty token separators; if {@code false}, adjacent
3560
     * separators are treated as one separator.
3561
     * @return an array of parsed Strings, {@code null} if null String input
3562
     */
3563
    private static String[] splitWorker(final String str, final String separatorChars, final int max, final boolean preserveAllTokens) {
3564
        // Performance tuned for 2.0 (JDK1.4)
3565
        // Direct code is quicker than StringTokenizer.
3566
        // Also, StringTokenizer uses isSpace() not isWhitespace()
3567
3568 1 1. splitWorker : negated conditional → KILLED
        if (str == null) {
3569 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3570
        }
3571
        final int len = str.length();
3572 1 1. splitWorker : negated conditional → KILLED
        if (len == 0) {
3573 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3574
        }
3575
        final List<String> list = new ArrayList<>();
3576
        int sizePlus1 = 1;
3577
        int i = 0, start = 0;
3578
        boolean match = false;
3579
        boolean lastMatch = false;
3580 1 1. splitWorker : negated conditional → KILLED
        if (separatorChars == null) {
3581
            // Null separator means use whitespace
3582 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3583 1 1. splitWorker : negated conditional → KILLED
                if (Character.isWhitespace(str.charAt(i))) {
3584 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3585
                        lastMatch = true;
3586 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3587
                            i = len;
3588
                            lastMatch = false;
3589
                        }
3590
                        list.add(str.substring(start, i));
3591
                        match = false;
3592
                    }
3593 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
3594
                    continue;
3595
                }
3596
                lastMatch = false;
3597
                match = true;
3598 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3599
            }
3600 1 1. splitWorker : negated conditional → SURVIVED
        } else if (separatorChars.length() == 1) {
3601
            // Optimise 1 character case
3602
            final char sep = separatorChars.charAt(0);
3603 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3604 1 1. splitWorker : negated conditional → KILLED
                if (str.charAt(i) == sep) {
3605 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3606
                        lastMatch = true;
3607 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3608
                            i = len;
3609
                            lastMatch = false;
3610
                        }
3611
                        list.add(str.substring(start, i));
3612
                        match = false;
3613
                    }
3614 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
3615
                    continue;
3616
                }
3617
                lastMatch = false;
3618
                match = true;
3619 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3620
            }
3621
        } else {
3622
            // standard case
3623 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3624 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
                if (separatorChars.indexOf(str.charAt(i)) >= 0) {
3625 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3626
                        lastMatch = true;
3627 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3628
                            i = len;
3629
                            lastMatch = false;
3630
                        }
3631
                        list.add(str.substring(start, i));
3632
                        match = false;
3633
                    }
3634 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
3635
                    continue;
3636
                }
3637
                lastMatch = false;
3638
                match = true;
3639 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3640
            }
3641
        }
3642 3 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
3. splitWorker : negated conditional → KILLED
        if (match || preserveAllTokens && lastMatch) {
3643
            list.add(str.substring(start, i));
3644
        }
3645 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3646
    }
3647
3648
    /**
3649
     * <p>Splits a String by Character type as returned by
3650
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3651
     * characters of the same type are returned as complete tokens.
3652
     * <pre>
3653
     * StringUtils.splitByCharacterType(null)         = null
3654
     * StringUtils.splitByCharacterType("")           = []
3655
     * StringUtils.splitByCharacterType("ab de fg")   = ["ab", " ", "de", " ", "fg"]
3656
     * StringUtils.splitByCharacterType("ab   de fg") = ["ab", "   ", "de", " ", "fg"]
3657
     * StringUtils.splitByCharacterType("ab:cd:ef")   = ["ab", ":", "cd", ":", "ef"]
3658
     * StringUtils.splitByCharacterType("number5")    = ["number", "5"]
3659
     * StringUtils.splitByCharacterType("fooBar")     = ["foo", "B", "ar"]
3660
     * StringUtils.splitByCharacterType("foo200Bar")  = ["foo", "200", "B", "ar"]
3661
     * StringUtils.splitByCharacterType("ASFRules")   = ["ASFR", "ules"]
3662
     * </pre>
3663
     * @param str the String to split, may be {@code null}
3664
     * @return an array of parsed Strings, {@code null} if null String input
3665
     * @since 2.4
3666
     */
3667
    public static String[] splitByCharacterType(final String str) {
3668 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByCharacterType(str, false);
3669
    }
3670
3671
    /**
3672
     * <p>Splits a String by Character type as returned by
3673
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3674
     * characters of the same type are returned as complete tokens, with the
3675
     * following exception: the character of type
3676
     * {@code Character.UPPERCASE_LETTER}, if any, immediately
3677
     * preceding a token of type {@code Character.LOWERCASE_LETTER}
3678
     * will belong to the following token rather than to the preceding, if any,
3679
     * {@code Character.UPPERCASE_LETTER} token.
3680
     * <pre>
3681
     * StringUtils.splitByCharacterTypeCamelCase(null)         = null
3682
     * StringUtils.splitByCharacterTypeCamelCase("")           = []
3683
     * StringUtils.splitByCharacterTypeCamelCase("ab de fg")   = ["ab", " ", "de", " ", "fg"]
3684
     * StringUtils.splitByCharacterTypeCamelCase("ab   de fg") = ["ab", "   ", "de", " ", "fg"]
3685
     * StringUtils.splitByCharacterTypeCamelCase("ab:cd:ef")   = ["ab", ":", "cd", ":", "ef"]
3686
     * StringUtils.splitByCharacterTypeCamelCase("number5")    = ["number", "5"]
3687
     * StringUtils.splitByCharacterTypeCamelCase("fooBar")     = ["foo", "Bar"]
3688
     * StringUtils.splitByCharacterTypeCamelCase("foo200Bar")  = ["foo", "200", "Bar"]
3689
     * StringUtils.splitByCharacterTypeCamelCase("ASFRules")   = ["ASF", "Rules"]
3690
     * </pre>
3691
     * @param str the String to split, may be {@code null}
3692
     * @return an array of parsed Strings, {@code null} if null String input
3693
     * @since 2.4
3694
     */
3695
    public static String[] splitByCharacterTypeCamelCase(final String str) {
3696 1 1. splitByCharacterTypeCamelCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterTypeCamelCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByCharacterType(str, true);
3697
    }
3698
3699
    /**
3700
     * <p>Splits a String by Character type as returned by
3701
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3702
     * characters of the same type are returned as complete tokens, with the
3703
     * following exception: if {@code camelCase} is {@code true},
3704
     * the character of type {@code Character.UPPERCASE_LETTER}, if any,
3705
     * immediately preceding a token of type {@code Character.LOWERCASE_LETTER}
3706
     * will belong to the following token rather than to the preceding, if any,
3707
     * {@code Character.UPPERCASE_LETTER} token.
3708
     * @param str the String to split, may be {@code null}
3709
     * @param camelCase whether to use so-called "camel-case" for letter types
3710
     * @return an array of parsed Strings, {@code null} if null String input
3711
     * @since 2.4
3712
     */
3713
    private static String[] splitByCharacterType(final String str, final boolean camelCase) {
3714 1 1. splitByCharacterType : negated conditional → KILLED
        if (str == null) {
3715 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3716
        }
3717 1 1. splitByCharacterType : negated conditional → KILLED
        if (str.isEmpty()) {
3718 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3719
        }
3720
        final char[] c = str.toCharArray();
3721
        final List<String> list = new ArrayList<>();
3722
        int tokenStart = 0;
3723
        int currentType = Character.getType(c[tokenStart]);
3724 4 1. splitByCharacterType : changed conditional boundary → KILLED
2. splitByCharacterType : Changed increment from 1 to -1 → KILLED
3. splitByCharacterType : Replaced integer addition with subtraction → KILLED
4. splitByCharacterType : negated conditional → KILLED
        for (int pos = tokenStart + 1; pos < c.length; pos++) {
3725
            final int type = Character.getType(c[pos]);
3726 1 1. splitByCharacterType : negated conditional → KILLED
            if (type == currentType) {
3727
                continue;
3728
            }
3729 3 1. splitByCharacterType : negated conditional → KILLED
2. splitByCharacterType : negated conditional → KILLED
3. splitByCharacterType : negated conditional → KILLED
            if (camelCase && type == Character.LOWERCASE_LETTER && currentType == Character.UPPERCASE_LETTER) {
3730 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
                final int newTokenStart = pos - 1;
3731 1 1. splitByCharacterType : negated conditional → KILLED
                if (newTokenStart != tokenStart) {
3732 1 1. splitByCharacterType : Replaced integer subtraction with addition → SURVIVED
                    list.add(new String(c, tokenStart, newTokenStart - tokenStart));
3733
                    tokenStart = newTokenStart;
3734
                }
3735
            } else {
3736 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
                list.add(new String(c, tokenStart, pos - tokenStart));
3737
                tokenStart = pos;
3738
            }
3739
            currentType = type;
3740
        }
3741 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
        list.add(new String(c, tokenStart, c.length - tokenStart));
3742 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3743
    }
3744
3745
    // Joining
3746
    //-----------------------------------------------------------------------
3747
    /**
3748
     * <p>Joins the elements of the provided array into a single String
3749
     * containing the provided list of elements.</p>
3750
     *
3751
     * <p>No separator is added to the joined String.
3752
     * Null objects or empty strings within the array are represented by
3753
     * empty strings.</p>
3754
     *
3755
     * <pre>
3756
     * StringUtils.join(null)            = null
3757
     * StringUtils.join([])              = ""
3758
     * StringUtils.join([null])          = ""
3759
     * StringUtils.join(["a", "b", "c"]) = "abc"
3760
     * StringUtils.join([null, "", "a"]) = "a"
3761
     * </pre>
3762
     *
3763
     * @param <T> the specific type of values to join together
3764
     * @param elements  the values to join together, may be null
3765
     * @return the joined String, {@code null} if null array input
3766
     * @since 2.0
3767
     * @since 3.0 Changed signature to use varargs
3768
     */
3769
    @SafeVarargs
3770
    public static <T> String join(final T... elements) {
3771 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(elements, null);
3772
    }
3773
3774
    /**
3775
     * <p>Joins the elements of the provided array into a single String
3776
     * containing the provided list of elements.</p>
3777
     *
3778
     * <p>No delimiter is added before or after the list.
3779
     * Null objects or empty strings within the array are represented by
3780
     * empty strings.</p>
3781
     *
3782
     * <pre>
3783
     * StringUtils.join(null, *)               = null
3784
     * StringUtils.join([], *)                 = ""
3785
     * StringUtils.join([null], *)             = ""
3786
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
3787
     * StringUtils.join(["a", "b", "c"], null) = "abc"
3788
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
3789
     * </pre>
3790
     *
3791
     * @param array  the array of values to join together, may be null
3792
     * @param separator  the separator character to use
3793
     * @return the joined String, {@code null} if null array input
3794
     * @since 2.0
3795
     */
3796
    public static String join(final Object[] array, final char separator) {
3797 1 1. join : negated conditional → KILLED
        if (array == null) {
3798 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3799
        }
3800 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3801
    }
3802
3803
    /**
3804
     * <p>
3805
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3806
     * </p>
3807
     *
3808
     * <p>
3809
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3810
     * by empty strings.
3811
     * </p>
3812
     *
3813
     * <pre>
3814
     * StringUtils.join(null, *)               = null
3815
     * StringUtils.join([], *)                 = ""
3816
     * StringUtils.join([null], *)             = ""
3817
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3818
     * StringUtils.join([1, 2, 3], null) = "123"
3819
     * </pre>
3820
     *
3821
     * @param array
3822
     *            the array of values to join together, may be null
3823
     * @param separator
3824
     *            the separator character to use
3825
     * @return the joined String, {@code null} if null array input
3826
     * @since 3.2
3827
     */
3828
    public static String join(final long[] array, final char separator) {
3829 1 1. join : negated conditional → KILLED
        if (array == null) {
3830 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3831
        }
3832 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3833
    }
3834
3835
    /**
3836
     * <p>
3837
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3838
     * </p>
3839
     *
3840
     * <p>
3841
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3842
     * by empty strings.
3843
     * </p>
3844
     *
3845
     * <pre>
3846
     * StringUtils.join(null, *)               = null
3847
     * StringUtils.join([], *)                 = ""
3848
     * StringUtils.join([null], *)             = ""
3849
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3850
     * StringUtils.join([1, 2, 3], null) = "123"
3851
     * </pre>
3852
     *
3853
     * @param array
3854
     *            the array of values to join together, may be null
3855
     * @param separator
3856
     *            the separator character to use
3857
     * @return the joined String, {@code null} if null array input
3858
     * @since 3.2
3859
     */
3860
    public static String join(final int[] array, final char separator) {
3861 1 1. join : negated conditional → KILLED
        if (array == null) {
3862 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3863
        }
3864 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3865
    }
3866
3867
    /**
3868
     * <p>
3869
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3870
     * </p>
3871
     *
3872
     * <p>
3873
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3874
     * by empty strings.
3875
     * </p>
3876
     *
3877
     * <pre>
3878
     * StringUtils.join(null, *)               = null
3879
     * StringUtils.join([], *)                 = ""
3880
     * StringUtils.join([null], *)             = ""
3881
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3882
     * StringUtils.join([1, 2, 3], null) = "123"
3883
     * </pre>
3884
     *
3885
     * @param array
3886
     *            the array of values to join together, may be null
3887
     * @param separator
3888
     *            the separator character to use
3889
     * @return the joined String, {@code null} if null array input
3890
     * @since 3.2
3891
     */
3892
    public static String join(final short[] array, final char separator) {
3893 1 1. join : negated conditional → KILLED
        if (array == null) {
3894 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3895
        }
3896 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3897
    }
3898
3899
    /**
3900
     * <p>
3901
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3902
     * </p>
3903
     *
3904
     * <p>
3905
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3906
     * by empty strings.
3907
     * </p>
3908
     *
3909
     * <pre>
3910
     * StringUtils.join(null, *)               = null
3911
     * StringUtils.join([], *)                 = ""
3912
     * StringUtils.join([null], *)             = ""
3913
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3914
     * StringUtils.join([1, 2, 3], null) = "123"
3915
     * </pre>
3916
     *
3917
     * @param array
3918
     *            the array of values to join together, may be null
3919
     * @param separator
3920
     *            the separator character to use
3921
     * @return the joined String, {@code null} if null array input
3922
     * @since 3.2
3923
     */
3924
    public static String join(final byte[] array, final char separator) {
3925 1 1. join : negated conditional → KILLED
        if (array == null) {
3926 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3927
        }
3928 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3929
    }
3930
3931
    /**
3932
     * <p>
3933
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3934
     * </p>
3935
     *
3936
     * <p>
3937
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3938
     * by empty strings.
3939
     * </p>
3940
     *
3941
     * <pre>
3942
     * StringUtils.join(null, *)               = null
3943
     * StringUtils.join([], *)                 = ""
3944
     * StringUtils.join([null], *)             = ""
3945
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3946
     * StringUtils.join([1, 2, 3], null) = "123"
3947
     * </pre>
3948
     *
3949
     * @param array
3950
     *            the array of values to join together, may be null
3951
     * @param separator
3952
     *            the separator character to use
3953
     * @return the joined String, {@code null} if null array input
3954
     * @since 3.2
3955
     */
3956
    public static String join(final char[] array, final char separator) {
3957 1 1. join : negated conditional → KILLED
        if (array == null) {
3958 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3959
        }
3960 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3961
    }
3962
3963
    /**
3964
     * <p>
3965
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3966
     * </p>
3967
     *
3968
     * <p>
3969
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3970
     * by empty strings.
3971
     * </p>
3972
     *
3973
     * <pre>
3974
     * StringUtils.join(null, *)               = null
3975
     * StringUtils.join([], *)                 = ""
3976
     * StringUtils.join([null], *)             = ""
3977
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3978
     * StringUtils.join([1, 2, 3], null) = "123"
3979
     * </pre>
3980
     *
3981
     * @param array
3982
     *            the array of values to join together, may be null
3983
     * @param separator
3984
     *            the separator character to use
3985
     * @return the joined String, {@code null} if null array input
3986
     * @since 3.2
3987
     */
3988
    public static String join(final float[] array, final char separator) {
3989 1 1. join : negated conditional → KILLED
        if (array == null) {
3990 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3991
        }
3992 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3993
    }
3994
3995
    /**
3996
     * <p>
3997
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3998
     * </p>
3999
     *
4000
     * <p>
4001
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4002
     * by empty strings.
4003
     * </p>
4004
     *
4005
     * <pre>
4006
     * StringUtils.join(null, *)               = null
4007
     * StringUtils.join([], *)                 = ""
4008
     * StringUtils.join([null], *)             = ""
4009
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4010
     * StringUtils.join([1, 2, 3], null) = "123"
4011
     * </pre>
4012
     *
4013
     * @param array
4014
     *            the array of values to join together, may be null
4015
     * @param separator
4016
     *            the separator character to use
4017
     * @return the joined String, {@code null} if null array input
4018
     * @since 3.2
4019
     */
4020
    public static String join(final double[] array, final char separator) {
4021 1 1. join : negated conditional → KILLED
        if (array == null) {
4022 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4023
        }
4024 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
4025
    }
4026
4027
4028
    /**
4029
     * <p>Joins the elements of the provided array into a single String
4030
     * containing the provided list of elements.</p>
4031
     *
4032
     * <p>No delimiter is added before or after the list.
4033
     * Null objects or empty strings within the array are represented by
4034
     * empty strings.</p>
4035
     *
4036
     * <pre>
4037
     * StringUtils.join(null, *)               = null
4038
     * StringUtils.join([], *)                 = ""
4039
     * StringUtils.join([null], *)             = ""
4040
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
4041
     * StringUtils.join(["a", "b", "c"], null) = "abc"
4042
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
4043
     * </pre>
4044
     *
4045
     * @param array  the array of values to join together, may be null
4046
     * @param separator  the separator character to use
4047
     * @param startIndex the first index to start joining from.  It is
4048
     * an error to pass in an end index past the end of the array
4049
     * @param endIndex the index to stop joining from (exclusive). It is
4050
     * an error to pass in an end index past the end of the array
4051
     * @return the joined String, {@code null} if null array input
4052
     * @since 2.0
4053
     */
4054
    public static String join(final Object[] array, final char separator, final int startIndex, final int endIndex) {
4055 1 1. join : negated conditional → KILLED
        if (array == null) {
4056 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
            return null;
4057
        }
4058 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4059 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4060 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4061
        }
4062 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4063 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4064 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4065
                buf.append(separator);
4066
            }
4067 1 1. join : negated conditional → KILLED
            if (array[i] != null) {
4068
                buf.append(array[i]);
4069
            }
4070
        }
4071 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4072
    }
4073
4074
    /**
4075
     * <p>
4076
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4077
     * </p>
4078
     *
4079
     * <p>
4080
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4081
     * by empty strings.
4082
     * </p>
4083
     *
4084
     * <pre>
4085
     * StringUtils.join(null, *)               = null
4086
     * StringUtils.join([], *)                 = ""
4087
     * StringUtils.join([null], *)             = ""
4088
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4089
     * StringUtils.join([1, 2, 3], null) = "123"
4090
     * </pre>
4091
     *
4092
     * @param array
4093
     *            the array of values to join together, may be null
4094
     * @param separator
4095
     *            the separator character to use
4096
     * @param startIndex
4097
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4098
     *            array
4099
     * @param endIndex
4100
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4101
     *            the array
4102
     * @return the joined String, {@code null} if null array input
4103
     * @since 3.2
4104
     */
4105
    public static String join(final long[] array, final char separator, final int startIndex, final int endIndex) {
4106 1 1. join : negated conditional → KILLED
        if (array == null) {
4107 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4108
        }
4109 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4110 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4111 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4112
        }
4113 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4114 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4115 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4116
                buf.append(separator);
4117
            }
4118
            buf.append(array[i]);
4119
        }
4120 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4121
    }
4122
4123
    /**
4124
     * <p>
4125
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4126
     * </p>
4127
     *
4128
     * <p>
4129
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4130
     * by empty strings.
4131
     * </p>
4132
     *
4133
     * <pre>
4134
     * StringUtils.join(null, *)               = null
4135
     * StringUtils.join([], *)                 = ""
4136
     * StringUtils.join([null], *)             = ""
4137
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4138
     * StringUtils.join([1, 2, 3], null) = "123"
4139
     * </pre>
4140
     *
4141
     * @param array
4142
     *            the array of values to join together, may be null
4143
     * @param separator
4144
     *            the separator character to use
4145
     * @param startIndex
4146
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4147
     *            array
4148
     * @param endIndex
4149
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4150
     *            the array
4151
     * @return the joined String, {@code null} if null array input
4152
     * @since 3.2
4153
     */
4154
    public static String join(final int[] array, final char separator, final int startIndex, final int endIndex) {
4155 1 1. join : negated conditional → KILLED
        if (array == null) {
4156 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4157
        }
4158 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4159 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4160 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4161
        }
4162 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4163 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4164 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4165
                buf.append(separator);
4166
            }
4167
            buf.append(array[i]);
4168
        }
4169 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4170
    }
4171
4172
    /**
4173
     * <p>
4174
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4175
     * </p>
4176
     *
4177
     * <p>
4178
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4179
     * by empty strings.
4180
     * </p>
4181
     *
4182
     * <pre>
4183
     * StringUtils.join(null, *)               = null
4184
     * StringUtils.join([], *)                 = ""
4185
     * StringUtils.join([null], *)             = ""
4186
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4187
     * StringUtils.join([1, 2, 3], null) = "123"
4188
     * </pre>
4189
     *
4190
     * @param array
4191
     *            the array of values to join together, may be null
4192
     * @param separator
4193
     *            the separator character to use
4194
     * @param startIndex
4195
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4196
     *            array
4197
     * @param endIndex
4198
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4199
     *            the array
4200
     * @return the joined String, {@code null} if null array input
4201
     * @since 3.2
4202
     */
4203
    public static String join(final byte[] array, final char separator, final int startIndex, final int endIndex) {
4204 1 1. join : negated conditional → KILLED
        if (array == null) {
4205 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4206
        }
4207 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4208 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4209 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4210
        }
4211 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4212 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4213 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4214
                buf.append(separator);
4215
            }
4216
            buf.append(array[i]);
4217
        }
4218 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4219
    }
4220
4221
    /**
4222
     * <p>
4223
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4224
     * </p>
4225
     *
4226
     * <p>
4227
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4228
     * by empty strings.
4229
     * </p>
4230
     *
4231
     * <pre>
4232
     * StringUtils.join(null, *)               = null
4233
     * StringUtils.join([], *)                 = ""
4234
     * StringUtils.join([null], *)             = ""
4235
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4236
     * StringUtils.join([1, 2, 3], null) = "123"
4237
     * </pre>
4238
     *
4239
     * @param array
4240
     *            the array of values to join together, may be null
4241
     * @param separator
4242
     *            the separator character to use
4243
     * @param startIndex
4244
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4245
     *            array
4246
     * @param endIndex
4247
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4248
     *            the array
4249
     * @return the joined String, {@code null} if null array input
4250
     * @since 3.2
4251
     */
4252
    public static String join(final short[] array, final char separator, final int startIndex, final int endIndex) {
4253 1 1. join : negated conditional → KILLED
        if (array == null) {
4254 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4255
        }
4256 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4257 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4258 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4259
        }
4260 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4261 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4262 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4263
                buf.append(separator);
4264
            }
4265
            buf.append(array[i]);
4266
        }
4267 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4268
    }
4269
4270
    /**
4271
     * <p>
4272
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4273
     * </p>
4274
     *
4275
     * <p>
4276
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4277
     * by empty strings.
4278
     * </p>
4279
     *
4280
     * <pre>
4281
     * StringUtils.join(null, *)               = null
4282
     * StringUtils.join([], *)                 = ""
4283
     * StringUtils.join([null], *)             = ""
4284
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4285
     * StringUtils.join([1, 2, 3], null) = "123"
4286
     * </pre>
4287
     *
4288
     * @param array
4289
     *            the array of values to join together, may be null
4290
     * @param separator
4291
     *            the separator character to use
4292
     * @param startIndex
4293
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4294
     *            array
4295
     * @param endIndex
4296
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4297
     *            the array
4298
     * @return the joined String, {@code null} if null array input
4299
     * @since 3.2
4300
     */
4301
    public static String join(final char[] array, final char separator, final int startIndex, final int endIndex) {
4302 1 1. join : negated conditional → KILLED
        if (array == null) {
4303 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4304
        }
4305 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4306 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4307 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4308
        }
4309 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4310 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4311 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4312
                buf.append(separator);
4313
            }
4314
            buf.append(array[i]);
4315
        }
4316 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4317
    }
4318
4319
    /**
4320
     * <p>
4321
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4322
     * </p>
4323
     *
4324
     * <p>
4325
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4326
     * by empty strings.
4327
     * </p>
4328
     *
4329
     * <pre>
4330
     * StringUtils.join(null, *)               = null
4331
     * StringUtils.join([], *)                 = ""
4332
     * StringUtils.join([null], *)             = ""
4333
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4334
     * StringUtils.join([1, 2, 3], null) = "123"
4335
     * </pre>
4336
     *
4337
     * @param array
4338
     *            the array of values to join together, may be null
4339
     * @param separator
4340
     *            the separator character to use
4341
     * @param startIndex
4342
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4343
     *            array
4344
     * @param endIndex
4345
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4346
     *            the array
4347
     * @return the joined String, {@code null} if null array input
4348
     * @since 3.2
4349
     */
4350
    public static String join(final double[] array, final char separator, final int startIndex, final int endIndex) {
4351 1 1. join : negated conditional → KILLED
        if (array == null) {
4352 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4353
        }
4354 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4355 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4356 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4357
        }
4358 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4359 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4360 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4361
                buf.append(separator);
4362
            }
4363
            buf.append(array[i]);
4364
        }
4365 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4366
    }
4367
4368
    /**
4369
     * <p>
4370
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4371
     * </p>
4372
     *
4373
     * <p>
4374
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4375
     * by empty strings.
4376
     * </p>
4377
     *
4378
     * <pre>
4379
     * StringUtils.join(null, *)               = null
4380
     * StringUtils.join([], *)                 = ""
4381
     * StringUtils.join([null], *)             = ""
4382
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4383
     * StringUtils.join([1, 2, 3], null) = "123"
4384
     * </pre>
4385
     *
4386
     * @param array
4387
     *            the array of values to join together, may be null
4388
     * @param separator
4389
     *            the separator character to use
4390
     * @param startIndex
4391
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4392
     *            array
4393
     * @param endIndex
4394
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4395
     *            the array
4396
     * @return the joined String, {@code null} if null array input
4397
     * @since 3.2
4398
     */
4399
    public static String join(final float[] array, final char separator, final int startIndex, final int endIndex) {
4400 1 1. join : negated conditional → KILLED
        if (array == null) {
4401 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4402
        }
4403 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4404 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4405 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4406
        }
4407 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4408 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4409 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4410
                buf.append(separator);
4411
            }
4412
            buf.append(array[i]);
4413
        }
4414 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4415
    }
4416
4417
4418
    /**
4419
     * <p>Joins the elements of the provided array into a single String
4420
     * containing the provided list of elements.</p>
4421
     *
4422
     * <p>No delimiter is added before or after the list.
4423
     * A {@code null} separator is the same as an empty String ("").
4424
     * Null objects or empty strings within the array are represented by
4425
     * empty strings.</p>
4426
     *
4427
     * <pre>
4428
     * StringUtils.join(null, *)                = null
4429
     * StringUtils.join([], *)                  = ""
4430
     * StringUtils.join([null], *)              = ""
4431
     * StringUtils.join(["a", "b", "c"], "--")  = "a--b--c"
4432
     * StringUtils.join(["a", "b", "c"], null)  = "abc"
4433
     * StringUtils.join(["a", "b", "c"], "")    = "abc"
4434
     * StringUtils.join([null, "", "a"], ',')   = ",,a"
4435
     * </pre>
4436
     *
4437
     * @param array  the array of values to join together, may be null
4438
     * @param separator  the separator character to use, null treated as ""
4439
     * @return the joined String, {@code null} if null array input
4440
     */
4441
    public static String join(final Object[] array, final String separator) {
4442 1 1. join : negated conditional → KILLED
        if (array == null) {
4443 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4444
        }
4445 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
4446
    }
4447
4448
    /**
4449
     * <p>Joins the elements of the provided array into a single String
4450
     * containing the provided list of elements.</p>
4451
     *
4452
     * <p>No delimiter is added before or after the list.
4453
     * A {@code null} separator is the same as an empty String ("").
4454
     * Null objects or empty strings within the array are represented by
4455
     * empty strings.</p>
4456
     *
4457
     * <pre>
4458
     * StringUtils.join(null, *, *, *)                = null
4459
     * StringUtils.join([], *, *, *)                  = ""
4460
     * StringUtils.join([null], *, *, *)              = ""
4461
     * StringUtils.join(["a", "b", "c"], "--", 0, 3)  = "a--b--c"
4462
     * StringUtils.join(["a", "b", "c"], "--", 1, 3)  = "b--c"
4463
     * StringUtils.join(["a", "b", "c"], "--", 2, 3)  = "c"
4464
     * StringUtils.join(["a", "b", "c"], "--", 2, 2)  = ""
4465
     * StringUtils.join(["a", "b", "c"], null, 0, 3)  = "abc"
4466
     * StringUtils.join(["a", "b", "c"], "", 0, 3)    = "abc"
4467
     * StringUtils.join([null, "", "a"], ',', 0, 3)   = ",,a"
4468
     * </pre>
4469
     *
4470
     * @param array  the array of values to join together, may be null
4471
     * @param separator  the separator character to use, null treated as ""
4472
     * @param startIndex the first index to start joining from.
4473
     * @param endIndex the index to stop joining from (exclusive).
4474
     * @return the joined String, {@code null} if null array input; or the empty string
4475
     * if {@code endIndex - startIndex <= 0}. The number of joined entries is given by
4476
     * {@code endIndex - startIndex}
4477
     * @throws ArrayIndexOutOfBoundsException ife<br>
4478
     * {@code startIndex < 0} or <br>
4479
     * {@code startIndex >= array.length()} or <br>
4480
     * {@code endIndex < 0} or <br>
4481
     * {@code endIndex > array.length()}
4482
     */
4483
    public static String join(final Object[] array, String separator, final int startIndex, final int endIndex) {
4484 1 1. join : negated conditional → KILLED
        if (array == null) {
4485 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
            return null;
4486
        }
4487 1 1. join : negated conditional → KILLED
        if (separator == null) {
4488
            separator = EMPTY;
4489
        }
4490
4491
        // endIndex - startIndex > 0:   Len = NofStrings *(len(firstString) + len(separator))
4492
        //           (Assuming that all Strings are roughly equally long)
4493 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4494 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4495 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4496
        }
4497
4498 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4499
4500 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4501 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4502
                buf.append(separator);
4503
            }
4504 1 1. join : negated conditional → KILLED
            if (array[i] != null) {
4505
                buf.append(array[i]);
4506
            }
4507
        }
4508 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4509
    }
4510
4511
    /**
4512
     * <p>Joins the elements of the provided {@code Iterator} into
4513
     * a single String containing the provided elements.</p>
4514
     *
4515
     * <p>No delimiter is added before or after the list. Null objects or empty
4516
     * strings within the iteration are represented by empty strings.</p>
4517
     *
4518
     * <p>See the examples here: {@link #join(Object[],char)}. </p>
4519
     *
4520
     * @param iterator  the {@code Iterator} of values to join together, may be null
4521
     * @param separator  the separator character to use
4522
     * @return the joined String, {@code null} if null iterator input
4523
     * @since 2.0
4524
     */
4525
    public static String join(final Iterator<?> iterator, final char separator) {
4526
4527
        // handle null, zero and one elements before building a buffer
4528 1 1. join : negated conditional → KILLED
        if (iterator == null) {
4529 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4530
        }
4531 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4532 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4533
        }
4534
        final Object first = iterator.next();
4535 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4536
            final String result = Objects.toString(first, "");
4537 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
4538
        }
4539
4540
        // two or more elements
4541
        final StringBuilder buf = new StringBuilder(256); // Java default is 16, probably too small
4542 1 1. join : negated conditional → KILLED
        if (first != null) {
4543
            buf.append(first);
4544
        }
4545
4546 1 1. join : negated conditional → KILLED
        while (iterator.hasNext()) {
4547
            buf.append(separator);
4548
            final Object obj = iterator.next();
4549 1 1. join : negated conditional → KILLED
            if (obj != null) {
4550
                buf.append(obj);
4551
            }
4552
        }
4553
4554 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4555
    }
4556
4557
    /**
4558
     * <p>Joins the elements of the provided {@code Iterator} into
4559
     * a single String containing the provided elements.</p>
4560
     *
4561
     * <p>No delimiter is added before or after the list.
4562
     * A {@code null} separator is the same as an empty String ("").</p>
4563
     *
4564
     * <p>See the examples here: {@link #join(Object[],String)}. </p>
4565
     *
4566
     * @param iterator  the {@code Iterator} of values to join together, may be null
4567
     * @param separator  the separator character to use, null treated as ""
4568
     * @return the joined String, {@code null} if null iterator input
4569
     */
4570
    public static String join(final Iterator<?> iterator, final String separator) {
4571
4572
        // handle null, zero and one elements before building a buffer
4573 1 1. join : negated conditional → KILLED
        if (iterator == null) {
4574 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4575
        }
4576 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4577 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4578
        }
4579
        final Object first = iterator.next();
4580 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4581
            final String result = Objects.toString(first, "");
4582 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
4583
        }
4584
4585
        // two or more elements
4586
        final StringBuilder buf = new StringBuilder(256); // Java default is 16, probably too small
4587 1 1. join : negated conditional → KILLED
        if (first != null) {
4588
            buf.append(first);
4589
        }
4590
4591 1 1. join : negated conditional → KILLED
        while (iterator.hasNext()) {
4592 1 1. join : negated conditional → KILLED
            if (separator != null) {
4593
                buf.append(separator);
4594
            }
4595
            final Object obj = iterator.next();
4596 1 1. join : negated conditional → KILLED
            if (obj != null) {
4597
                buf.append(obj);
4598
            }
4599
        }
4600 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4601
    }
4602
4603
    /**
4604
     * <p>Joins the elements of the provided {@code Iterable} into
4605
     * a single String containing the provided elements.</p>
4606
     *
4607
     * <p>No delimiter is added before or after the list. Null objects or empty
4608
     * strings within the iteration are represented by empty strings.</p>
4609
     *
4610
     * <p>See the examples here: {@link #join(Object[],char)}. </p>
4611
     *
4612
     * @param iterable  the {@code Iterable} providing the values to join together, may be null
4613
     * @param separator  the separator character to use
4614
     * @return the joined String, {@code null} if null iterator input
4615
     * @since 2.3
4616
     */
4617
    public static String join(final Iterable<?> iterable, final char separator) {
4618 1 1. join : negated conditional → KILLED
        if (iterable == null) {
4619 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4620
        }
4621 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(iterable.iterator(), separator);
4622
    }
4623
4624
    /**
4625
     * <p>Joins the elements of the provided {@code Iterable} into
4626
     * a single String containing the provided elements.</p>
4627
     *
4628
     * <p>No delimiter is added before or after the list.
4629
     * A {@code null} separator is the same as an empty String ("").</p>
4630
     *
4631
     * <p>See the examples here: {@link #join(Object[],String)}. </p>
4632
     *
4633
     * @param iterable  the {@code Iterable} providing the values to join together, may be null
4634
     * @param separator  the separator character to use, null treated as ""
4635
     * @return the joined String, {@code null} if null iterator input
4636
     * @since 2.3
4637
     */
4638
    public static String join(final Iterable<?> iterable, final String separator) {
4639 1 1. join : negated conditional → KILLED
        if (iterable == null) {
4640 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4641
        }
4642 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(iterable.iterator(), separator);
4643
    }
4644
4645
    /**
4646
     * <p>Joins the elements of the provided varargs into a
4647
     * single String containing the provided elements.</p>
4648
     *
4649
     * <p>No delimiter is added before or after the list.
4650
     * {@code null} elements and separator are treated as empty Strings ("").</p>
4651
     *
4652
     * <pre>
4653
     * StringUtils.joinWith(",", {"a", "b"})        = "a,b"
4654
     * StringUtils.joinWith(",", {"a", "b",""})     = "a,b,"
4655
     * StringUtils.joinWith(",", {"a", null, "b"})  = "a,,b"
4656
     * StringUtils.joinWith(null, {"a", "b"})       = "ab"
4657
     * </pre>
4658
     *
4659
     * @param separator the separator character to use, null treated as ""
4660
     * @param objects the varargs providing the values to join together. {@code null} elements are treated as ""
4661
     * @return the joined String.
4662
     * @throws java.lang.IllegalArgumentException if a null varargs is provided
4663
     * @since 3.5
4664
     */
4665
    public static String joinWith(final String separator, final Object... objects) {
4666 1 1. joinWith : negated conditional → KILLED
        if (objects == null) {
4667
            throw new IllegalArgumentException("Object varargs must not be null");
4668
        }
4669
4670
        final String sanitizedSeparator = defaultString(separator, StringUtils.EMPTY);
4671
4672
        final StringBuilder result = new StringBuilder();
4673
4674
        final Iterator<Object> iterator = Arrays.asList(objects).iterator();
4675 1 1. joinWith : negated conditional → KILLED
        while (iterator.hasNext()) {
4676
            final String value = Objects.toString(iterator.next(), "");
4677
            result.append(value);
4678
4679 1 1. joinWith : negated conditional → KILLED
            if (iterator.hasNext()) {
4680
                result.append(sanitizedSeparator);
4681
            }
4682
        }
4683
4684 1 1. joinWith : mutated return of Object value for org/apache/commons/lang3/StringUtils::joinWith to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return result.toString();
4685
    }
4686
4687
    // Delete
4688
    //-----------------------------------------------------------------------
4689
    /**
4690
     * <p>Deletes all whitespaces from a String as defined by
4691
     * {@link Character#isWhitespace(char)}.</p>
4692
     *
4693
     * <pre>
4694
     * StringUtils.deleteWhitespace(null)         = null
4695
     * StringUtils.deleteWhitespace("")           = ""
4696
     * StringUtils.deleteWhitespace("abc")        = "abc"
4697
     * StringUtils.deleteWhitespace("   ab  c  ") = "abc"
4698
     * </pre>
4699
     *
4700
     * @param str  the String to delete whitespace from, may be null
4701
     * @return the String without whitespaces, {@code null} if null String input
4702
     */
4703
    public static String deleteWhitespace(final String str) {
4704 1 1. deleteWhitespace : negated conditional → KILLED
        if (isEmpty(str)) {
4705 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4706
        }
4707
        final int sz = str.length();
4708
        final char[] chs = new char[sz];
4709
        int count = 0;
4710 3 1. deleteWhitespace : changed conditional boundary → KILLED
2. deleteWhitespace : Changed increment from 1 to -1 → KILLED
3. deleteWhitespace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
4711 1 1. deleteWhitespace : negated conditional → KILLED
            if (!Character.isWhitespace(str.charAt(i))) {
4712 1 1. deleteWhitespace : Changed increment from 1 to -1 → KILLED
                chs[count++] = str.charAt(i);
4713
            }
4714
        }
4715 1 1. deleteWhitespace : negated conditional → KILLED
        if (count == sz) {
4716 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4717
        }
4718 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(chs, 0, count);
4719
    }
4720
4721
    // Remove
4722
    //-----------------------------------------------------------------------
4723
    /**
4724
     * <p>Removes a substring only if it is at the beginning of a source string,
4725
     * otherwise returns the source string.</p>
4726
     *
4727
     * <p>A {@code null} source string will return {@code null}.
4728
     * An empty ("") source string will return the empty string.
4729
     * A {@code null} search string will return the source string.</p>
4730
     *
4731
     * <pre>
4732
     * StringUtils.removeStart(null, *)      = null
4733
     * StringUtils.removeStart("", *)        = ""
4734
     * StringUtils.removeStart(*, null)      = *
4735
     * StringUtils.removeStart("www.domain.com", "www.")   = "domain.com"
4736
     * StringUtils.removeStart("domain.com", "www.")       = "domain.com"
4737
     * StringUtils.removeStart("www.domain.com", "domain") = "www.domain.com"
4738
     * StringUtils.removeStart("abc", "")    = "abc"
4739
     * </pre>
4740
     *
4741
     * @param str  the source String to search, may be null
4742
     * @param remove  the String to search for and remove, may be null
4743
     * @return the substring with the string removed if found,
4744
     *  {@code null} if null String input
4745
     * @since 2.1
4746
     */
4747
    public static String removeStart(final String str, final String remove) {
4748 2 1. removeStart : negated conditional → KILLED
2. removeStart : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4749 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4750
        }
4751 1 1. removeStart : negated conditional → KILLED
        if (str.startsWith(remove)){
4752 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(remove.length());
4753
        }
4754 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4755
    }
4756
4757
    /**
4758
     * <p>Case insensitive removal of a substring if it is at the beginning of a source string,
4759
     * otherwise returns the source string.</p>
4760
     *
4761
     * <p>A {@code null} source string will return {@code null}.
4762
     * An empty ("") source string will return the empty string.
4763
     * A {@code null} search string will return the source string.</p>
4764
     *
4765
     * <pre>
4766
     * StringUtils.removeStartIgnoreCase(null, *)      = null
4767
     * StringUtils.removeStartIgnoreCase("", *)        = ""
4768
     * StringUtils.removeStartIgnoreCase(*, null)      = *
4769
     * StringUtils.removeStartIgnoreCase("www.domain.com", "www.")   = "domain.com"
4770
     * StringUtils.removeStartIgnoreCase("www.domain.com", "WWW.")   = "domain.com"
4771
     * StringUtils.removeStartIgnoreCase("domain.com", "www.")       = "domain.com"
4772
     * StringUtils.removeStartIgnoreCase("www.domain.com", "domain") = "www.domain.com"
4773
     * StringUtils.removeStartIgnoreCase("abc", "")    = "abc"
4774
     * </pre>
4775
     *
4776
     * @param str  the source String to search, may be null
4777
     * @param remove  the String to search for (case insensitive) and remove, may be null
4778
     * @return the substring with the string removed if found,
4779
     *  {@code null} if null String input
4780
     * @since 2.4
4781
     */
4782
    public static String removeStartIgnoreCase(final String str, final String remove) {
4783 2 1. removeStartIgnoreCase : negated conditional → KILLED
2. removeStartIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4784 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4785
        }
4786 1 1. removeStartIgnoreCase : negated conditional → KILLED
        if (startsWithIgnoreCase(str, remove)) {
4787 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(remove.length());
4788
        }
4789 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4790
    }
4791
4792
    /**
4793
     * <p>Removes a substring only if it is at the end of a source string,
4794
     * otherwise returns the source string.</p>
4795
     *
4796
     * <p>A {@code null} source string will return {@code null}.
4797
     * An empty ("") source string will return the empty string.
4798
     * A {@code null} search string will return the source string.</p>
4799
     *
4800
     * <pre>
4801
     * StringUtils.removeEnd(null, *)      = null
4802
     * StringUtils.removeEnd("", *)        = ""
4803
     * StringUtils.removeEnd(*, null)      = *
4804
     * StringUtils.removeEnd("www.domain.com", ".com.")  = "www.domain.com"
4805
     * StringUtils.removeEnd("www.domain.com", ".com")   = "www.domain"
4806
     * StringUtils.removeEnd("www.domain.com", "domain") = "www.domain.com"
4807
     * StringUtils.removeEnd("abc", "")    = "abc"
4808
     * </pre>
4809
     *
4810
     * @param str  the source String to search, may be null
4811
     * @param remove  the String to search for and remove, may be null
4812
     * @return the substring with the string removed if found,
4813
     *  {@code null} if null String input
4814
     * @since 2.1
4815
     */
4816
    public static String removeEnd(final String str, final String remove) {
4817 2 1. removeEnd : negated conditional → KILLED
2. removeEnd : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4818 1 1. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4819
        }
4820 1 1. removeEnd : negated conditional → KILLED
        if (str.endsWith(remove)) {
4821 2 1. removeEnd : Replaced integer subtraction with addition → KILLED
2. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, str.length() - remove.length());
4822
        }
4823 1 1. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4824
    }
4825
4826
    /**
4827
     * <p>Case insensitive removal of a substring if it is at the end of a source string,
4828
     * otherwise returns the source string.</p>
4829
     *
4830
     * <p>A {@code null} source string will return {@code null}.
4831
     * An empty ("") source string will return the empty string.
4832
     * A {@code null} search string will return the source string.</p>
4833
     *
4834
     * <pre>
4835
     * StringUtils.removeEndIgnoreCase(null, *)      = null
4836
     * StringUtils.removeEndIgnoreCase("", *)        = ""
4837
     * StringUtils.removeEndIgnoreCase(*, null)      = *
4838
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".com.")  = "www.domain.com"
4839
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".com")   = "www.domain"
4840
     * StringUtils.removeEndIgnoreCase("www.domain.com", "domain") = "www.domain.com"
4841
     * StringUtils.removeEndIgnoreCase("abc", "")    = "abc"
4842
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".COM") = "www.domain")
4843
     * StringUtils.removeEndIgnoreCase("www.domain.COM", ".com") = "www.domain")
4844
     * </pre>
4845
     *
4846
     * @param str  the source String to search, may be null
4847
     * @param remove  the String to search for (case insensitive) and remove, may be null
4848
     * @return the substring with the string removed if found,
4849
     *  {@code null} if null String input
4850
     * @since 2.4
4851
     */
4852
    public static String removeEndIgnoreCase(final String str, final String remove) {
4853 2 1. removeEndIgnoreCase : negated conditional → KILLED
2. removeEndIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4854 1 1. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4855
        }
4856 1 1. removeEndIgnoreCase : negated conditional → KILLED
        if (endsWithIgnoreCase(str, remove)) {
4857 2 1. removeEndIgnoreCase : Replaced integer subtraction with addition → KILLED
2. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, str.length() - remove.length());
4858
        }
4859 1 1. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4860
    }
4861
4862
    /**
4863
     * <p>Removes all occurrences of a substring from within the source string.</p>
4864
     *
4865
     * <p>A {@code null} source string will return {@code null}.
4866
     * An empty ("") source string will return the empty string.
4867
     * A {@code null} remove string will return the source string.
4868
     * An empty ("") remove string will return the source string.</p>
4869
     *
4870
     * <pre>
4871
     * StringUtils.remove(null, *)        = null
4872
     * StringUtils.remove("", *)          = ""
4873
     * StringUtils.remove(*, null)        = *
4874
     * StringUtils.remove(*, "")          = *
4875
     * StringUtils.remove("queued", "ue") = "qd"
4876
     * StringUtils.remove("queued", "zz") = "queued"
4877
     * </pre>
4878
     *
4879
     * @param str  the source String to search, may be null
4880
     * @param remove  the String to search for and remove, may be null
4881
     * @return the substring with the string removed if found,
4882
     *  {@code null} if null String input
4883
     * @since 2.1
4884
     */
4885
    public static String remove(final String str, final String remove) {
4886 2 1. remove : negated conditional → KILLED
2. remove : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4887 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4888
        }
4889 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(str, remove, EMPTY, -1);
4890
    }
4891
4892
    /**
4893
     * <p>
4894
     * Case insensitive removal of all occurrences of a substring from within
4895
     * the source string.
4896
     * </p>
4897
     *
4898
     * <p>
4899
     * A {@code null} source string will return {@code null}. An empty ("")
4900
     * source string will return the empty string. A {@code null} remove string
4901
     * will return the source string. An empty ("") remove string will return
4902
     * the source string.
4903
     * </p>
4904
     *
4905
     * <pre>
4906
     * StringUtils.removeIgnoreCase(null, *)        = null
4907
     * StringUtils.removeIgnoreCase("", *)          = ""
4908
     * StringUtils.removeIgnoreCase(*, null)        = *
4909
     * StringUtils.removeIgnoreCase(*, "")          = *
4910
     * StringUtils.removeIgnoreCase("queued", "ue") = "qd"
4911
     * StringUtils.removeIgnoreCase("queued", "zz") = "queued"
4912
     * StringUtils.removeIgnoreCase("quEUed", "UE") = "qd"
4913
     * StringUtils.removeIgnoreCase("queued", "zZ") = "queued"
4914
     * </pre>
4915
     *
4916
     * @param str
4917
     *            the source String to search, may be null
4918
     * @param remove
4919
     *            the String to search for (case insensitive) and remove, may be
4920
     *            null
4921
     * @return the substring with the string removed if found, {@code null} if
4922
     *         null String input
4923
     * @since 3.5
4924
     */
4925
    public static String removeIgnoreCase(final String str, final String remove) {
4926 2 1. removeIgnoreCase : negated conditional → KILLED
2. removeIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4927 1 1. removeIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4928
        }
4929 1 1. removeIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceIgnoreCase(str, remove, EMPTY, -1);
4930
    }
4931
4932
    /**
4933
     * <p>Removes all occurrences of a character from within the source string.</p>
4934
     *
4935
     * <p>A {@code null} source string will return {@code null}.
4936
     * An empty ("") source string will return the empty string.</p>
4937
     *
4938
     * <pre>
4939
     * StringUtils.remove(null, *)       = null
4940
     * StringUtils.remove("", *)         = ""
4941
     * StringUtils.remove("queued", 'u') = "qeed"
4942
     * StringUtils.remove("queued", 'z') = "queued"
4943
     * </pre>
4944
     *
4945
     * @param str  the source String to search, may be null
4946
     * @param remove  the char to search for and remove, may be null
4947
     * @return the substring with the char removed if found,
4948
     *  {@code null} if null String input
4949
     * @since 2.1
4950
     */
4951
    public static String remove(final String str, final char remove) {
4952 2 1. remove : negated conditional → KILLED
2. remove : negated conditional → KILLED
        if (isEmpty(str) || str.indexOf(remove) == INDEX_NOT_FOUND) {
4953 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4954
        }
4955
        final char[] chars = str.toCharArray();
4956
        int pos = 0;
4957 3 1. remove : changed conditional boundary → KILLED
2. remove : Changed increment from 1 to -1 → KILLED
3. remove : negated conditional → KILLED
        for (int i = 0; i < chars.length; i++) {
4958 1 1. remove : negated conditional → KILLED
            if (chars[i] != remove) {
4959 1 1. remove : Changed increment from 1 to -1 → KILLED
                chars[pos++] = chars[i];
4960
            }
4961
        }
4962 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(chars, 0, pos);
4963
    }
4964
4965
    /**
4966
     * <p>Removes each substring of the text String that matches the given regular expression.</p>
4967
     *
4968
     * This method is a {@code null} safe equivalent to:
4969
     * <ul>
4970
     *  <li>{@code text.replaceAll(regex, StringUtils.EMPTY)}</li>
4971
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceAll(StringUtils.EMPTY)}</li>
4972
     * </ul>
4973
     *
4974
     * <p>A {@code null} reference passed to this method is a no-op.</p>
4975
     *
4976
     * <p>Unlike in the {@link #removePattern(String, String)} method, the {@link Pattern#DOTALL} option
4977
     * is NOT automatically added.
4978
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
4979
     * DOTALL is also know as single-line mode in Perl.</p>
4980
     *
4981
     * <pre>
4982
     * StringUtils.removeAll(null, *)      = null
4983
     * StringUtils.removeAll("any", null)  = "any"
4984
     * StringUtils.removeAll("any", "")    = "any"
4985
     * StringUtils.removeAll("any", ".*")  = ""
4986
     * StringUtils.removeAll("any", ".+")  = ""
4987
     * StringUtils.removeAll("abc", ".?")  = ""
4988
     * StringUtils.removeAll("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")      = "A\nB"
4989
     * StringUtils.removeAll("A&lt;__&gt;\n&lt;__&gt;B", "(?s)&lt;.*&gt;")  = "AB"
4990
     * StringUtils.removeAll("ABCabc123abc", "[a-z]")     = "ABC123"
4991
     * </pre>
4992
     *
4993
     * @param text  text to remove from, may be null
4994
     * @param regex  the regular expression to which this string is to be matched
4995
     * @return  the text with any removes processed,
4996
     *              {@code null} if null String input
4997
     *
4998
     * @throws  java.util.regex.PatternSyntaxException
4999
     *              if the regular expression's syntax is invalid
5000
     *
5001
     * @see #replaceAll(String, String, String)
5002
     * @see #removePattern(String, String)
5003
     * @see String#replaceAll(String, String)
5004
     * @see java.util.regex.Pattern
5005
     * @see java.util.regex.Pattern#DOTALL
5006
     * @since 3.5
5007
     */
5008
    public static String removeAll(final String text, final String regex) {
5009 1 1. removeAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceAll(text, regex, StringUtils.EMPTY);
5010
    }
5011
5012
    /**
5013
     * <p>Removes the first substring of the text string that matches the given regular expression.</p>
5014
     *
5015
     * This method is a {@code null} safe equivalent to:
5016
     * <ul>
5017
     *  <li>{@code text.replaceFirst(regex, StringUtils.EMPTY)}</li>
5018
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceFirst(StringUtils.EMPTY)}</li>
5019
     * </ul>
5020
     *
5021
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5022
     *
5023
     * <p>The {@link Pattern#DOTALL} option is NOT automatically added.
5024
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5025
     * DOTALL is also know as single-line mode in Perl.</p>
5026
     *
5027
     * <pre>
5028
     * StringUtils.removeFirst(null, *)      = null
5029
     * StringUtils.removeFirst("any", null)  = "any"
5030
     * StringUtils.removeFirst("any", "")    = "any"
5031
     * StringUtils.removeFirst("any", ".*")  = ""
5032
     * StringUtils.removeFirst("any", ".+")  = ""
5033
     * StringUtils.removeFirst("abc", ".?")  = "bc"
5034
     * StringUtils.removeFirst("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")      = "A\n&lt;__&gt;B"
5035
     * StringUtils.removeFirst("A&lt;__&gt;\n&lt;__&gt;B", "(?s)&lt;.*&gt;")  = "AB"
5036
     * StringUtils.removeFirst("ABCabc123", "[a-z]")          = "ABCbc123"
5037
     * StringUtils.removeFirst("ABCabc123abc", "[a-z]+")      = "ABC123abc"
5038
     * </pre>
5039
     *
5040
     * @param text  text to remove from, may be null
5041
     * @param regex  the regular expression to which this string is to be matched
5042
     * @return  the text with the first replacement processed,
5043
     *              {@code null} if null String input
5044
     *
5045
     * @throws  java.util.regex.PatternSyntaxException
5046
     *              if the regular expression's syntax is invalid
5047
     *
5048
     * @see #replaceFirst(String, String, String)
5049
     * @see String#replaceFirst(String, String)
5050
     * @see java.util.regex.Pattern
5051
     * @see java.util.regex.Pattern#DOTALL
5052
     * @since 3.5
5053
     */
5054
    public static String removeFirst(final String text, final String regex) {
5055 1 1. removeFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceFirst(text, regex, StringUtils.EMPTY);
5056
    }
5057
5058
    // Replacing
5059
    //-----------------------------------------------------------------------
5060
    /**
5061
     * <p>Replaces a String with another String inside a larger String, once.</p>
5062
     *
5063
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5064
     *
5065
     * <pre>
5066
     * StringUtils.replaceOnce(null, *, *)        = null
5067
     * StringUtils.replaceOnce("", *, *)          = ""
5068
     * StringUtils.replaceOnce("any", null, *)    = "any"
5069
     * StringUtils.replaceOnce("any", *, null)    = "any"
5070
     * StringUtils.replaceOnce("any", "", *)      = "any"
5071
     * StringUtils.replaceOnce("aba", "a", null)  = "aba"
5072
     * StringUtils.replaceOnce("aba", "a", "")    = "ba"
5073
     * StringUtils.replaceOnce("aba", "a", "z")   = "zba"
5074
     * </pre>
5075
     *
5076
     * @see #replace(String text, String searchString, String replacement, int max)
5077
     * @param text  text to search and replace in, may be null
5078
     * @param searchString  the String to search for, may be null
5079
     * @param replacement  the String to replace with, may be null
5080
     * @return the text with any replacements processed,
5081
     *  {@code null} if null String input
5082
     */
5083
    public static String replaceOnce(final String text, final String searchString, final String replacement) {
5084 1 1. replaceOnce : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnce to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, 1);
5085
    }
5086
5087
    /**
5088
     * <p>Case insensitively replaces a String with another String inside a larger String, once.</p>
5089
     *
5090
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5091
     *
5092
     * <pre>
5093
     * StringUtils.replaceOnceIgnoreCase(null, *, *)        = null
5094
     * StringUtils.replaceOnceIgnoreCase("", *, *)          = ""
5095
     * StringUtils.replaceOnceIgnoreCase("any", null, *)    = "any"
5096
     * StringUtils.replaceOnceIgnoreCase("any", *, null)    = "any"
5097
     * StringUtils.replaceOnceIgnoreCase("any", "", *)      = "any"
5098
     * StringUtils.replaceOnceIgnoreCase("aba", "a", null)  = "aba"
5099
     * StringUtils.replaceOnceIgnoreCase("aba", "a", "")    = "ba"
5100
     * StringUtils.replaceOnceIgnoreCase("aba", "a", "z")   = "zba"
5101
     * StringUtils.replaceOnceIgnoreCase("FoOFoofoo", "foo", "") = "Foofoo"
5102
     * </pre>
5103
     *
5104
     * @see #replaceIgnoreCase(String text, String searchString, String replacement, int max)
5105
     * @param text  text to search and replace in, may be null
5106
     * @param searchString  the String to search for (case insensitive), may be null
5107
     * @param replacement  the String to replace with, may be null
5108
     * @return the text with any replacements processed,
5109
     *  {@code null} if null String input
5110
     * @since 3.5
5111
     */
5112
    public static String replaceOnceIgnoreCase(final String text, final String searchString, final String replacement) {
5113 1 1. replaceOnceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceIgnoreCase(text, searchString, replacement, 1);
5114
    }
5115
5116
    /**
5117
     * <p>Replaces each substring of the source String that matches the given regular expression with the given
5118
     * replacement using the {@link Pattern#DOTALL} option. DOTALL is also know as single-line mode in Perl.</p>
5119
     *
5120
     * This call is a {@code null} safe equivalent to:
5121
     * <ul>
5122
     * <li>{@code source.replaceAll(&quot;(?s)&quot; + regex, replacement)}</li>
5123
     * <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(replacement)}</li>
5124
     * </ul>
5125
     *
5126
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5127
     *
5128
     * <pre>
5129
     * StringUtils.replacePattern(null, *, *)       = null
5130
     * StringUtils.replacePattern("any", null, *)   = "any"
5131
     * StringUtils.replacePattern("any", *, null)   = "any"
5132
     * StringUtils.replacePattern("", "", "zzz")    = "zzz"
5133
     * StringUtils.replacePattern("", ".*", "zzz")  = "zzz"
5134
     * StringUtils.replacePattern("", ".+", "zzz")  = ""
5135
     * StringUtils.replacePattern("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")       = "z"
5136
     * StringUtils.replacePattern("ABCabc123", "[a-z]", "_")       = "ABC___123"
5137
     * StringUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "_")  = "ABC_123"
5138
     * StringUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "")   = "ABC123"
5139
     * StringUtils.replacePattern("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum_dolor_sit"
5140
     * </pre>
5141
     *
5142
     * @param source
5143
     *            the source string
5144
     * @param regex
5145
     *            the regular expression to which this string is to be matched
5146
     * @param replacement
5147
     *            the string to be substituted for each match
5148
     * @return The resulting {@code String}
5149
     * @see #replaceAll(String, String, String)
5150
     * @see String#replaceAll(String, String)
5151
     * @see Pattern#DOTALL
5152
     * @since 3.2
5153
     * @since 3.5 Changed {@code null} reference passed to this method is a no-op.
5154
     */
5155
    public static String replacePattern(final String source, final String regex, final String replacement) {
5156 3 1. replacePattern : negated conditional → KILLED
2. replacePattern : negated conditional → KILLED
3. replacePattern : negated conditional → KILLED
        if (source == null || regex == null || replacement == null) {
5157 1 1. replacePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return source;
5158
        }
5159 1 1. replacePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(replacement);
5160
    }
5161
5162
    /**
5163
     * <p>Removes each substring of the source String that matches the given regular expression using the DOTALL option.
5164
     * </p>
5165
     *
5166
     * This call is a {@code null} safe equivalent to:
5167
     * <ul>
5168
     * <li>{@code source.replaceAll(&quot;(?s)&quot; + regex, StringUtils.EMPTY)}</li>
5169
     * <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(StringUtils.EMPTY)}</li>
5170
     * </ul>
5171
     *
5172
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5173
     *
5174
     * <pre>
5175
     * StringUtils.removePattern(null, *)       = null
5176
     * StringUtils.removePattern("any", null)   = "any"
5177
     * StringUtils.removePattern("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")  = "AB"
5178
     * StringUtils.removePattern("ABCabc123", "[a-z]")    = "ABC123"
5179
     * </pre>
5180
     *
5181
     * @param source
5182
     *            the source string
5183
     * @param regex
5184
     *            the regular expression to which this string is to be matched
5185
     * @return The resulting {@code String}
5186
     * @see #replacePattern(String, String, String)
5187
     * @see String#replaceAll(String, String)
5188
     * @see Pattern#DOTALL
5189
     * @since 3.2
5190
     * @since 3.5 Changed {@code null} reference passed to this method is a no-op.
5191
     */
5192
    public static String removePattern(final String source, final String regex) {
5193 1 1. removePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::removePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replacePattern(source, regex, StringUtils.EMPTY);
5194
    }
5195
5196
    /**
5197
     * <p>Replaces each substring of the text String that matches the given regular expression
5198
     * with the given replacement.</p>
5199
     *
5200
     * This method is a {@code null} safe equivalent to:
5201
     * <ul>
5202
     *  <li>{@code text.replaceAll(regex, replacement)}</li>
5203
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceAll(replacement)}</li>
5204
     * </ul>
5205
     *
5206
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5207
     *
5208
     * <p>Unlike in the {@link #replacePattern(String, String, String)} method, the {@link Pattern#DOTALL} option
5209
     * is NOT automatically added.
5210
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5211
     * DOTALL is also know as single-line mode in Perl.</p>
5212
     *
5213
     * <pre>
5214
     * StringUtils.replaceAll(null, *, *)       = null
5215
     * StringUtils.replaceAll("any", null, *)   = "any"
5216
     * StringUtils.replaceAll("any", *, null)   = "any"
5217
     * StringUtils.replaceAll("", "", "zzz")    = "zzz"
5218
     * StringUtils.replaceAll("", ".*", "zzz")  = "zzz"
5219
     * StringUtils.replaceAll("", ".+", "zzz")  = ""
5220
     * StringUtils.replaceAll("abc", "", "ZZ")  = "ZZaZZbZZcZZ"
5221
     * StringUtils.replaceAll("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")      = "z\nz"
5222
     * StringUtils.replaceAll("&lt;__&gt;\n&lt;__&gt;", "(?s)&lt;.*&gt;", "z")  = "z"
5223
     * StringUtils.replaceAll("ABCabc123", "[a-z]", "_")       = "ABC___123"
5224
     * StringUtils.replaceAll("ABCabc123", "[^A-Z0-9]+", "_")  = "ABC_123"
5225
     * StringUtils.replaceAll("ABCabc123", "[^A-Z0-9]+", "")   = "ABC123"
5226
     * StringUtils.replaceAll("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum_dolor_sit"
5227
     * </pre>
5228
     *
5229
     * @param text  text to search and replace in, may be null
5230
     * @param regex  the regular expression to which this string is to be matched
5231
     * @param replacement  the string to be substituted for each match
5232
     * @return  the text with any replacements processed,
5233
     *              {@code null} if null String input
5234
     *
5235
     * @throws  java.util.regex.PatternSyntaxException
5236
     *              if the regular expression's syntax is invalid
5237
     *
5238
     * @see #replacePattern(String, String, String)
5239
     * @see String#replaceAll(String, String)
5240
     * @see java.util.regex.Pattern
5241
     * @see java.util.regex.Pattern#DOTALL
5242
     * @since 3.5
5243
     */
5244
    public static String replaceAll(final String text, final String regex, final String replacement) {
5245 3 1. replaceAll : negated conditional → KILLED
2. replaceAll : negated conditional → KILLED
3. replaceAll : negated conditional → KILLED
        if (text == null || regex == null|| replacement == null ) {
5246 1 1. replaceAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5247
        }
5248 1 1. replaceAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return text.replaceAll(regex, replacement);
5249
    }
5250
5251
    /**
5252
     * <p>Replaces the first substring of the text string that matches the given regular expression
5253
     * with the given replacement.</p>
5254
     *
5255
     * This method is a {@code null} safe equivalent to:
5256
     * <ul>
5257
     *  <li>{@code text.replaceFirst(regex, replacement)}</li>
5258
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceFirst(replacement)}</li>
5259
     * </ul>
5260
     *
5261
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5262
     *
5263
     * <p>The {@link Pattern#DOTALL} option is NOT automatically added.
5264
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5265
     * DOTALL is also know as single-line mode in Perl.</p>
5266
     *
5267
     * <pre>
5268
     * StringUtils.replaceFirst(null, *, *)       = null
5269
     * StringUtils.replaceFirst("any", null, *)   = "any"
5270
     * StringUtils.replaceFirst("any", *, null)   = "any"
5271
     * StringUtils.replaceFirst("", "", "zzz")    = "zzz"
5272
     * StringUtils.replaceFirst("", ".*", "zzz")  = "zzz"
5273
     * StringUtils.replaceFirst("", ".+", "zzz")  = ""
5274
     * StringUtils.replaceFirst("abc", "", "ZZ")  = "ZZabc"
5275
     * StringUtils.replaceFirst("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")      = "z\n&lt;__&gt;"
5276
     * StringUtils.replaceFirst("&lt;__&gt;\n&lt;__&gt;", "(?s)&lt;.*&gt;", "z")  = "z"
5277
     * StringUtils.replaceFirst("ABCabc123", "[a-z]", "_")          = "ABC_bc123"
5278
     * StringUtils.replaceFirst("ABCabc123abc", "[^A-Z0-9]+", "_")  = "ABC_123abc"
5279
     * StringUtils.replaceFirst("ABCabc123abc", "[^A-Z0-9]+", "")   = "ABC123abc"
5280
     * StringUtils.replaceFirst("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum  dolor   sit"
5281
     * </pre>
5282
     *
5283
     * @param text  text to search and replace in, may be null
5284
     * @param regex  the regular expression to which this string is to be matched
5285
     * @param replacement  the string to be substituted for the first match
5286
     * @return  the text with the first replacement processed,
5287
     *              {@code null} if null String input
5288
     *
5289
     * @throws  java.util.regex.PatternSyntaxException
5290
     *              if the regular expression's syntax is invalid
5291
     *
5292
     * @see String#replaceFirst(String, String)
5293
     * @see java.util.regex.Pattern
5294
     * @see java.util.regex.Pattern#DOTALL
5295
     * @since 3.5
5296
     */
5297
    public static String replaceFirst(final String text, final String regex, final String replacement) {
5298 3 1. replaceFirst : negated conditional → KILLED
2. replaceFirst : negated conditional → KILLED
3. replaceFirst : negated conditional → KILLED
        if (text == null || regex == null|| replacement == null ) {
5299 1 1. replaceFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5300
        }
5301 1 1. replaceFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return text.replaceFirst(regex, replacement);
5302
    }
5303
5304
    /**
5305
     * <p>Replaces all occurrences of a String within another String.</p>
5306
     *
5307
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5308
     *
5309
     * <pre>
5310
     * StringUtils.replace(null, *, *)        = null
5311
     * StringUtils.replace("", *, *)          = ""
5312
     * StringUtils.replace("any", null, *)    = "any"
5313
     * StringUtils.replace("any", *, null)    = "any"
5314
     * StringUtils.replace("any", "", *)      = "any"
5315
     * StringUtils.replace("aba", "a", null)  = "aba"
5316
     * StringUtils.replace("aba", "a", "")    = "b"
5317
     * StringUtils.replace("aba", "a", "z")   = "zbz"
5318
     * </pre>
5319
     *
5320
     * @see #replace(String text, String searchString, String replacement, int max)
5321
     * @param text  text to search and replace in, may be null
5322
     * @param searchString  the String to search for, may be null
5323
     * @param replacement  the String to replace it with, may be null
5324
     * @return the text with any replacements processed,
5325
     *  {@code null} if null String input
5326
     */
5327
    public static String replace(final String text, final String searchString, final String replacement) {
5328 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, -1);
5329
    }
5330
5331
    /**
5332
    * <p>Case insensitively replaces all occurrences of a String within another String.</p>
5333
    *
5334
    * <p>A {@code null} reference passed to this method is a no-op.</p>
5335
    *
5336
    * <pre>
5337
    * StringUtils.replaceIgnoreCase(null, *, *)        = null
5338
    * StringUtils.replaceIgnoreCase("", *, *)          = ""
5339
    * StringUtils.replaceIgnoreCase("any", null, *)    = "any"
5340
    * StringUtils.replaceIgnoreCase("any", *, null)    = "any"
5341
    * StringUtils.replaceIgnoreCase("any", "", *)      = "any"
5342
    * StringUtils.replaceIgnoreCase("aba", "a", null)  = "aba"
5343
    * StringUtils.replaceIgnoreCase("abA", "A", "")    = "b"
5344
    * StringUtils.replaceIgnoreCase("aba", "A", "z")   = "zbz"
5345
    * </pre>
5346
    *
5347
    * @see #replaceIgnoreCase(String text, String searchString, String replacement, int max)
5348
    * @param text  text to search and replace in, may be null
5349
    * @param searchString  the String to search for (case insensitive), may be null
5350
    * @param replacement  the String to replace it with, may be null
5351
    * @return the text with any replacements processed,
5352
    *  {@code null} if null String input
5353
    * @since 3.5
5354
    */
5355
   public static String replaceIgnoreCase(final String text, final String searchString, final String replacement) {
5356 1 1. replaceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
       return replaceIgnoreCase(text, searchString, replacement, -1);
5357
   }
5358
5359
    /**
5360
     * <p>Replaces a String with another String inside a larger String,
5361
     * for the first {@code max} values of the search String.</p>
5362
     *
5363
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5364
     *
5365
     * <pre>
5366
     * StringUtils.replace(null, *, *, *)         = null
5367
     * StringUtils.replace("", *, *, *)           = ""
5368
     * StringUtils.replace("any", null, *, *)     = "any"
5369
     * StringUtils.replace("any", *, null, *)     = "any"
5370
     * StringUtils.replace("any", "", *, *)       = "any"
5371
     * StringUtils.replace("any", *, *, 0)        = "any"
5372
     * StringUtils.replace("abaa", "a", null, -1) = "abaa"
5373
     * StringUtils.replace("abaa", "a", "", -1)   = "b"
5374
     * StringUtils.replace("abaa", "a", "z", 0)   = "abaa"
5375
     * StringUtils.replace("abaa", "a", "z", 1)   = "zbaa"
5376
     * StringUtils.replace("abaa", "a", "z", 2)   = "zbza"
5377
     * StringUtils.replace("abaa", "a", "z", -1)  = "zbzz"
5378
     * </pre>
5379
     *
5380
     * @param text  text to search and replace in, may be null
5381
     * @param searchString  the String to search for, may be null
5382
     * @param replacement  the String to replace it with, may be null
5383
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5384
     * @return the text with any replacements processed,
5385
     *  {@code null} if null String input
5386
     */
5387
    public static String replace(final String text, final String searchString, final String replacement, final int max) {
5388 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, max, false);
5389
    }
5390
5391
    /**
5392
     * <p>Replaces a String with another String inside a larger String,
5393
     * for the first {@code max} values of the search String, 
5394
     * case sensitively/insensisitively based on {@code ignoreCase} value.</p>
5395
     *
5396
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5397
     *
5398
     * <pre>
5399
     * StringUtils.replace(null, *, *, *, false)         = null
5400
     * StringUtils.replace("", *, *, *, false)           = ""
5401
     * StringUtils.replace("any", null, *, *, false)     = "any"
5402
     * StringUtils.replace("any", *, null, *, false)     = "any"
5403
     * StringUtils.replace("any", "", *, *, false)       = "any"
5404
     * StringUtils.replace("any", *, *, 0, false)        = "any"
5405
     * StringUtils.replace("abaa", "a", null, -1, false) = "abaa"
5406
     * StringUtils.replace("abaa", "a", "", -1, false)   = "b"
5407
     * StringUtils.replace("abaa", "a", "z", 0, false)   = "abaa"
5408
     * StringUtils.replace("abaa", "A", "z", 1, false)   = "abaa"
5409
     * StringUtils.replace("abaa", "A", "z", 1, true)   = "zbaa"
5410
     * StringUtils.replace("abAa", "a", "z", 2, true)   = "zbza"
5411
     * StringUtils.replace("abAa", "a", "z", -1, true)  = "zbzz"
5412
     * </pre>
5413
     *
5414
     * @param text  text to search and replace in, may be null
5415
     * @param searchString  the String to search for (case insensitive), may be null
5416
     * @param replacement  the String to replace it with, may be null
5417
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5418
     * @param ignoreCase if true replace is case insensitive, otherwise case sensitive
5419
     * @return the text with any replacements processed,
5420
     *  {@code null} if null String input
5421
     */
5422
     private static String replace(final String text, String searchString, final String replacement, int max, final boolean ignoreCase) {
5423 4 1. replace : negated conditional → KILLED
2. replace : negated conditional → KILLED
3. replace : negated conditional → KILLED
4. replace : negated conditional → KILLED
         if (isEmpty(text) || isEmpty(searchString) || replacement == null || max == 0) {
5424 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
             return text;
5425
         }
5426
         String searchText = text;
5427 1 1. replace : negated conditional → KILLED
         if (ignoreCase) {
5428
             searchText = text.toLowerCase();
5429
             searchString = searchString.toLowerCase();
5430
         }
5431
         int start = 0;
5432
         int end = searchText.indexOf(searchString, start);
5433 1 1. replace : negated conditional → KILLED
         if (end == INDEX_NOT_FOUND) {
5434 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
             return text;
5435
         }
5436
         final int replLength = searchString.length();
5437 1 1. replace : Replaced integer subtraction with addition → SURVIVED
         int increase = replacement.length() - replLength;
5438 2 1. replace : changed conditional boundary → SURVIVED
2. replace : negated conditional → KILLED
         increase = increase < 0 ? 0 : increase;
5439 5 1. replace : changed conditional boundary → SURVIVED
2. replace : changed conditional boundary → SURVIVED
3. replace : Replaced integer multiplication with division → SURVIVED
4. replace : negated conditional → SURVIVED
5. replace : negated conditional → SURVIVED
         increase *= max < 0 ? 16 : max > 64 ? 64 : max;
5440 1 1. replace : Replaced integer addition with subtraction → KILLED
         final StringBuilder buf = new StringBuilder(text.length() + increase);
5441 1 1. replace : negated conditional → KILLED
         while (end != INDEX_NOT_FOUND) {
5442
             buf.append(text.substring(start, end)).append(replacement);
5443 1 1. replace : Replaced integer addition with subtraction → KILLED
             start = end + replLength;
5444 2 1. replace : Changed increment from -1 to 1 → KILLED
2. replace : negated conditional → KILLED
             if (--max == 0) {
5445
                 break;
5446
             }
5447
             end = searchText.indexOf(searchString, start);
5448
         }
5449
         buf.append(text.substring(start));
5450 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
         return buf.toString();
5451
     }
5452
5453
    /**
5454
     * <p>Case insensitively replaces a String with another String inside a larger String,
5455
     * for the first {@code max} values of the search String.</p>
5456
     *
5457
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5458
     *
5459
     * <pre>
5460
     * StringUtils.replaceIgnoreCase(null, *, *, *)         = null
5461
     * StringUtils.replaceIgnoreCase("", *, *, *)           = ""
5462
     * StringUtils.replaceIgnoreCase("any", null, *, *)     = "any"
5463
     * StringUtils.replaceIgnoreCase("any", *, null, *)     = "any"
5464
     * StringUtils.replaceIgnoreCase("any", "", *, *)       = "any"
5465
     * StringUtils.replaceIgnoreCase("any", *, *, 0)        = "any"
5466
     * StringUtils.replaceIgnoreCase("abaa", "a", null, -1) = "abaa"
5467
     * StringUtils.replaceIgnoreCase("abaa", "a", "", -1)   = "b"
5468
     * StringUtils.replaceIgnoreCase("abaa", "a", "z", 0)   = "abaa"
5469
     * StringUtils.replaceIgnoreCase("abaa", "A", "z", 1)   = "zbaa"
5470
     * StringUtils.replaceIgnoreCase("abAa", "a", "z", 2)   = "zbza"
5471
     * StringUtils.replaceIgnoreCase("abAa", "a", "z", -1)  = "zbzz"
5472
     * </pre>
5473
     *
5474
     * @param text  text to search and replace in, may be null
5475
     * @param searchString  the String to search for (case insensitive), may be null
5476
     * @param replacement  the String to replace it with, may be null
5477
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5478
     * @return the text with any replacements processed,
5479
     *  {@code null} if null String input
5480
     * @since 3.5
5481
     */
5482
    public static String replaceIgnoreCase(final String text, final String searchString, final String replacement, final int max) {
5483 1 1. replaceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, max, true);
5484
    }
5485
5486
    /**
5487
     * <p>
5488
     * Replaces all occurrences of Strings within another String.
5489
     * </p>
5490
     *
5491
     * <p>
5492
     * A {@code null} reference passed to this method is a no-op, or if
5493
     * any "search string" or "string to replace" is null, that replace will be
5494
     * ignored. This will not repeat. For repeating replaces, call the
5495
     * overloaded method.
5496
     * </p>
5497
     *
5498
     * <pre>
5499
     *  StringUtils.replaceEach(null, *, *)        = null
5500
     *  StringUtils.replaceEach("", *, *)          = ""
5501
     *  StringUtils.replaceEach("aba", null, null) = "aba"
5502
     *  StringUtils.replaceEach("aba", new String[0], null) = "aba"
5503
     *  StringUtils.replaceEach("aba", null, new String[0]) = "aba"
5504
     *  StringUtils.replaceEach("aba", new String[]{"a"}, null)  = "aba"
5505
     *  StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""})  = "b"
5506
     *  StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"})  = "aba"
5507
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"})  = "wcte"
5508
     *  (example of how it does not repeat)
5509
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"})  = "dcte"
5510
     * </pre>
5511
     *
5512
     * @param text
5513
     *            text to search and replace in, no-op if null
5514
     * @param searchList
5515
     *            the Strings to search for, no-op if null
5516
     * @param replacementList
5517
     *            the Strings to replace them with, no-op if null
5518
     * @return the text with any replacements processed, {@code null} if
5519
     *         null String input
5520
     * @throws IllegalArgumentException
5521
     *             if the lengths of the arrays are not the same (null is ok,
5522
     *             and/or size 0)
5523
     * @since 2.4
5524
     */
5525
    public static String replaceEach(final String text, final String[] searchList, final String[] replacementList) {
5526 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(text, searchList, replacementList, false, 0);
5527
    }
5528
5529
    /**
5530
     * <p>
5531
     * Replaces all occurrences of Strings within another String.
5532
     * </p>
5533
     *
5534
     * <p>
5535
     * A {@code null} reference passed to this method is a no-op, or if
5536
     * any "search string" or "string to replace" is null, that replace will be
5537
     * ignored.
5538
     * </p>
5539
     *
5540
     * <pre>
5541
     *  StringUtils.replaceEachRepeatedly(null, *, *) = null
5542
     *  StringUtils.replaceEachRepeatedly("", *, *) = ""
5543
     *  StringUtils.replaceEachRepeatedly("aba", null, null) = "aba"
5544
     *  StringUtils.replaceEachRepeatedly("aba", new String[0], null) = "aba"
5545
     *  StringUtils.replaceEachRepeatedly("aba", null, new String[0]) = "aba"
5546
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{"a"}, null) = "aba"
5547
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{"a"}, new String[]{""}) = "b"
5548
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{null}, new String[]{"a"}) = "aba"
5549
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}) = "wcte"
5550
     *  (example of how it repeats)
5551
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}) = "tcte"
5552
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "ab"}) = IllegalStateException
5553
     * </pre>
5554
     *
5555
     * @param text
5556
     *            text to search and replace in, no-op if null
5557
     * @param searchList
5558
     *            the Strings to search for, no-op if null
5559
     * @param replacementList
5560
     *            the Strings to replace them with, no-op if null
5561
     * @return the text with any replacements processed, {@code null} if
5562
     *         null String input
5563
     * @throws IllegalStateException
5564
     *             if the search is repeating and there is an endless loop due
5565
     *             to outputs of one being inputs to another
5566
     * @throws IllegalArgumentException
5567
     *             if the lengths of the arrays are not the same (null is ok,
5568
     *             and/or size 0)
5569
     * @since 2.4
5570
     */
5571
    public static String replaceEachRepeatedly(final String text, final String[] searchList, final String[] replacementList) {
5572
        // timeToLive should be 0 if not used or nothing to replace, else it's
5573
        // the length of the replace array
5574 1 1. replaceEachRepeatedly : negated conditional → KILLED
        final int timeToLive = searchList == null ? 0 : searchList.length;
5575 1 1. replaceEachRepeatedly : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEachRepeatedly to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(text, searchList, replacementList, true, timeToLive);
5576
    }
5577
5578
    /**
5579
     * <p>
5580
     * Replace all occurrences of Strings within another String.
5581
     * This is a private recursive helper method for {@link #replaceEachRepeatedly(String, String[], String[])} and
5582
     * {@link #replaceEach(String, String[], String[])}
5583
     * </p>
5584
     *
5585
     * <p>
5586
     * A {@code null} reference passed to this method is a no-op, or if
5587
     * any "search string" or "string to replace" is null, that replace will be
5588
     * ignored.
5589
     * </p>
5590
     *
5591
     * <pre>
5592
     *  StringUtils.replaceEach(null, *, *, *, *) = null
5593
     *  StringUtils.replaceEach("", *, *, *, *) = ""
5594
     *  StringUtils.replaceEach("aba", null, null, *, *) = "aba"
5595
     *  StringUtils.replaceEach("aba", new String[0], null, *, *) = "aba"
5596
     *  StringUtils.replaceEach("aba", null, new String[0], *, *) = "aba"
5597
     *  StringUtils.replaceEach("aba", new String[]{"a"}, null, *, *) = "aba"
5598
     *  StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""}, *, >=0) = "b"
5599
     *  StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"}, *, >=0) = "aba"
5600
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}, *, >=0) = "wcte"
5601
     *  (example of how it repeats)
5602
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}, false, >=0) = "dcte"
5603
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}, true, >=2) = "tcte"
5604
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "ab"}, *, *) = IllegalStateException
5605
     * </pre>
5606
     *
5607
     * @param text
5608
     *            text to search and replace in, no-op if null
5609
     * @param searchList
5610
     *            the Strings to search for, no-op if null
5611
     * @param replacementList
5612
     *            the Strings to replace them with, no-op if null
5613
     * @param repeat if true, then replace repeatedly
5614
     *       until there are no more possible replacements or timeToLive < 0
5615
     * @param timeToLive
5616
     *            if less than 0 then there is a circular reference and endless
5617
     *            loop
5618
     * @return the text with any replacements processed, {@code null} if
5619
     *         null String input
5620
     * @throws IllegalStateException
5621
     *             if the search is repeating and there is an endless loop due
5622
     *             to outputs of one being inputs to another
5623
     * @throws IllegalArgumentException
5624
     *             if the lengths of the arrays are not the same (null is ok,
5625
     *             and/or size 0)
5626
     * @since 2.4
5627
     */
5628
    private static String replaceEach(
5629
            final String text, final String[] searchList, final String[] replacementList, final boolean repeat, final int timeToLive) {
5630
5631
        // mchyzer Performance note: This creates very few new objects (one major goal)
5632
        // let me know if there are performance requests, we can create a harness to measure
5633
5634 6 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
4. replaceEach : negated conditional → KILLED
5. replaceEach : negated conditional → KILLED
6. replaceEach : negated conditional → KILLED
        if (text == null || text.isEmpty() || searchList == null ||
5635
                searchList.length == 0 || replacementList == null || replacementList.length == 0) {
5636 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5637
        }
5638
5639
        // if recursing, this shouldn't be less than 0
5640 2 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : negated conditional → KILLED
        if (timeToLive < 0) {
5641
            throw new IllegalStateException("Aborting to protect against StackOverflowError - " +
5642
                                            "output of one loop is the input of another");
5643
        }
5644
5645
        final int searchLength = searchList.length;
5646
        final int replacementLength = replacementList.length;
5647
5648
        // make sure lengths are ok, these need to be equal
5649 1 1. replaceEach : negated conditional → KILLED
        if (searchLength != replacementLength) {
5650
            throw new IllegalArgumentException("Search and Replace array lengths don't match: "
5651
                + searchLength
5652
                + " vs "
5653
                + replacementLength);
5654
        }
5655
5656
        // keep track of which still have matches
5657
        final boolean[] noMoreMatchesForReplIndex = new boolean[searchLength];
5658
5659
        // index on index that the match was found
5660
        int textIndex = -1;
5661
        int replaceIndex = -1;
5662
        int tempIndex = -1;
5663
5664
        // index of replace array that will replace the search string found
5665
        // NOTE: logic duplicated below START
5666 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
        for (int i = 0; i < searchLength; i++) {
5667 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
            if (noMoreMatchesForReplIndex[i] || searchList[i] == null ||
5668 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                    searchList[i].isEmpty() || replacementList[i] == null) {
5669
                continue;
5670
            }
5671
            tempIndex = text.indexOf(searchList[i]);
5672
5673
            // see if we need to keep searching for this
5674 1 1. replaceEach : negated conditional → KILLED
            if (tempIndex == -1) {
5675
                noMoreMatchesForReplIndex[i] = true;
5676
            } else {
5677 3 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
                if (textIndex == -1 || tempIndex < textIndex) {
5678
                    textIndex = tempIndex;
5679
                    replaceIndex = i;
5680
                }
5681
            }
5682
        }
5683
        // NOTE: logic mostly below END
5684
5685
        // no search strings found, we are done
5686 1 1. replaceEach : negated conditional → KILLED
        if (textIndex == -1) {
5687 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5688
        }
5689
5690
        int start = 0;
5691
5692
        // get a good guess on the size of the result buffer so it doesn't have to double if it goes over a bit
5693
        int increase = 0;
5694
5695
        // count the replacement text elements that are larger than their corresponding text being replaced
5696 3 1. replaceEach : negated conditional → SURVIVED
2. replaceEach : changed conditional boundary → KILLED
3. replaceEach : Changed increment from 1 to -1 → KILLED
        for (int i = 0; i < searchList.length; i++) {
5697 2 1. replaceEach : negated conditional → SURVIVED
2. replaceEach : negated conditional → KILLED
            if (searchList[i] == null || replacementList[i] == null) {
5698
                continue;
5699
            }
5700 1 1. replaceEach : Replaced integer subtraction with addition → SURVIVED
            final int greater = replacementList[i].length() - searchList[i].length();
5701 2 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → SURVIVED
            if (greater > 0) {
5702 2 1. replaceEach : Replaced integer multiplication with division → SURVIVED
2. replaceEach : Replaced integer addition with subtraction → SURVIVED
                increase += 3 * greater; // assume 3 matches
5703
            }
5704
        }
5705
        // have upper-bound at 20% increase, then let Java take over
5706 1 1. replaceEach : Replaced integer division with multiplication → SURVIVED
        increase = Math.min(increase, text.length() / 5);
5707
5708 1 1. replaceEach : Replaced integer addition with subtraction → SURVIVED
        final StringBuilder buf = new StringBuilder(text.length() + increase);
5709
5710 1 1. replaceEach : negated conditional → KILLED
        while (textIndex != -1) {
5711
5712 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
            for (int i = start; i < textIndex; i++) {
5713
                buf.append(text.charAt(i));
5714
            }
5715
            buf.append(replacementList[replaceIndex]);
5716
5717 1 1. replaceEach : Replaced integer addition with subtraction → KILLED
            start = textIndex + searchList[replaceIndex].length();
5718
5719
            textIndex = -1;
5720
            replaceIndex = -1;
5721
            tempIndex = -1;
5722
            // find the next earliest match
5723
            // NOTE: logic mostly duplicated above START
5724 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
            for (int i = 0; i < searchLength; i++) {
5725 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                if (noMoreMatchesForReplIndex[i] || searchList[i] == null ||
5726 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                        searchList[i].isEmpty() || replacementList[i] == null) {
5727
                    continue;
5728
                }
5729
                tempIndex = text.indexOf(searchList[i], start);
5730
5731
                // see if we need to keep searching for this
5732 1 1. replaceEach : negated conditional → KILLED
                if (tempIndex == -1) {
5733
                    noMoreMatchesForReplIndex[i] = true;
5734
                } else {
5735 3 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
                    if (textIndex == -1 || tempIndex < textIndex) {
5736
                        textIndex = tempIndex;
5737
                        replaceIndex = i;
5738
                    }
5739
                }
5740
            }
5741
            // NOTE: logic duplicated above END
5742
5743
        }
5744
        final int textLength = text.length();
5745 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
        for (int i = start; i < textLength; i++) {
5746
            buf.append(text.charAt(i));
5747
        }
5748
        final String result = buf.toString();
5749 1 1. replaceEach : negated conditional → KILLED
        if (!repeat) {
5750 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
5751
        }
5752
5753 2 1. replaceEach : Replaced integer subtraction with addition → KILLED
2. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(result, searchList, replacementList, repeat, timeToLive - 1);
5754
    }
5755
5756
    // Replace, character based
5757
    //-----------------------------------------------------------------------
5758
    /**
5759
     * <p>Replaces all occurrences of a character in a String with another.
5760
     * This is a null-safe version of {@link String#replace(char, char)}.</p>
5761
     *
5762
     * <p>A {@code null} string input returns {@code null}.
5763
     * An empty ("") string input returns an empty string.</p>
5764
     *
5765
     * <pre>
5766
     * StringUtils.replaceChars(null, *, *)        = null
5767
     * StringUtils.replaceChars("", *, *)          = ""
5768
     * StringUtils.replaceChars("abcba", 'b', 'y') = "aycya"
5769
     * StringUtils.replaceChars("abcba", 'z', 'y') = "abcba"
5770
     * </pre>
5771
     *
5772
     * @param str  String to replace characters in, may be null
5773
     * @param searchChar  the character to search for, may be null
5774
     * @param replaceChar  the character to replace, may be null
5775
     * @return modified String, {@code null} if null string input
5776
     * @since 2.0
5777
     */
5778
    public static String replaceChars(final String str, final char searchChar, final char replaceChar) {
5779 1 1. replaceChars : negated conditional → KILLED
        if (str == null) {
5780 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
5781
        }
5782 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.replace(searchChar, replaceChar);
5783
    }
5784
5785
    /**
5786
     * <p>Replaces multiple characters in a String in one go.
5787
     * This method can also be used to delete characters.</p>
5788
     *
5789
     * <p>For example:<br>
5790
     * <code>replaceChars(&quot;hello&quot;, &quot;ho&quot;, &quot;jy&quot;) = jelly</code>.</p>
5791
     *
5792
     * <p>A {@code null} string input returns {@code null}.
5793
     * An empty ("") string input returns an empty string.
5794
     * A null or empty set of search characters returns the input string.</p>
5795
     *
5796
     * <p>The length of the search characters should normally equal the length
5797
     * of the replace characters.
5798
     * If the search characters is longer, then the extra search characters
5799
     * are deleted.
5800
     * If the search characters is shorter, then the extra replace characters
5801
     * are ignored.</p>
5802
     *
5803
     * <pre>
5804
     * StringUtils.replaceChars(null, *, *)           = null
5805
     * StringUtils.replaceChars("", *, *)             = ""
5806
     * StringUtils.replaceChars("abc", null, *)       = "abc"
5807
     * StringUtils.replaceChars("abc", "", *)         = "abc"
5808
     * StringUtils.replaceChars("abc", "b", null)     = "ac"
5809
     * StringUtils.replaceChars("abc", "b", "")       = "ac"
5810
     * StringUtils.replaceChars("abcba", "bc", "yz")  = "ayzya"
5811
     * StringUtils.replaceChars("abcba", "bc", "y")   = "ayya"
5812
     * StringUtils.replaceChars("abcba", "bc", "yzx") = "ayzya"
5813
     * </pre>
5814
     *
5815
     * @param str  String to replace characters in, may be null
5816
     * @param searchChars  a set of characters to search for, may be null
5817
     * @param replaceChars  a set of characters to replace, may be null
5818
     * @return modified String, {@code null} if null string input
5819
     * @since 2.0
5820
     */
5821
    public static String replaceChars(final String str, final String searchChars, String replaceChars) {
5822 2 1. replaceChars : negated conditional → KILLED
2. replaceChars : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(searchChars)) {
5823 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5824
        }
5825 1 1. replaceChars : negated conditional → KILLED
        if (replaceChars == null) {
5826
            replaceChars = EMPTY;
5827
        }
5828
        boolean modified = false;
5829
        final int replaceCharsLength = replaceChars.length();
5830
        final int strLength = str.length();
5831
        final StringBuilder buf = new StringBuilder(strLength);
5832 3 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : Changed increment from 1 to -1 → KILLED
3. replaceChars : negated conditional → KILLED
        for (int i = 0; i < strLength; i++) {
5833
            final char ch = str.charAt(i);
5834
            final int index = searchChars.indexOf(ch);
5835 2 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : negated conditional → KILLED
            if (index >= 0) {
5836
                modified = true;
5837 2 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : negated conditional → KILLED
                if (index < replaceCharsLength) {
5838
                    buf.append(replaceChars.charAt(index));
5839
                }
5840
            } else {
5841
                buf.append(ch);
5842
            }
5843
        }
5844 1 1. replaceChars : negated conditional → KILLED
        if (modified) {
5845 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return buf.toString();
5846
        }
5847 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
5848
    }
5849
5850
    // Overlay
5851
    //-----------------------------------------------------------------------
5852
    /**
5853
     * <p>Overlays part of a String with another String.</p>
5854
     *
5855
     * <p>A {@code null} string input returns {@code null}.
5856
     * A negative index is treated as zero.
5857
     * An index greater than the string length is treated as the string length.
5858
     * The start index is always the smaller of the two indices.</p>
5859
     *
5860
     * <pre>
5861
     * StringUtils.overlay(null, *, *, *)            = null
5862
     * StringUtils.overlay("", "abc", 0, 0)          = "abc"
5863
     * StringUtils.overlay("abcdef", null, 2, 4)     = "abef"
5864
     * StringUtils.overlay("abcdef", "", 2, 4)       = "abef"
5865
     * StringUtils.overlay("abcdef", "", 4, 2)       = "abef"
5866
     * StringUtils.overlay("abcdef", "zzzz", 2, 4)   = "abzzzzef"
5867
     * StringUtils.overlay("abcdef", "zzzz", 4, 2)   = "abzzzzef"
5868
     * StringUtils.overlay("abcdef", "zzzz", -1, 4)  = "zzzzef"
5869
     * StringUtils.overlay("abcdef", "zzzz", 2, 8)   = "abzzzz"
5870
     * StringUtils.overlay("abcdef", "zzzz", -2, -3) = "zzzzabcdef"
5871
     * StringUtils.overlay("abcdef", "zzzz", 8, 10)  = "abcdefzzzz"
5872
     * </pre>
5873
     *
5874
     * @param str  the String to do overlaying in, may be null
5875
     * @param overlay  the String to overlay, may be null
5876
     * @param start  the position to start overlaying at
5877
     * @param end  the position to stop overlaying before
5878
     * @return overlayed String, {@code null} if null String input
5879
     * @since 2.0
5880
     */
5881
    public static String overlay(final String str, String overlay, int start, int end) {
5882 1 1. overlay : negated conditional → KILLED
        if (str == null) {
5883 1 1. overlay : mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
5884
        }
5885 1 1. overlay : negated conditional → KILLED
        if (overlay == null) {
5886
            overlay = EMPTY;
5887
        }
5888
        final int len = str.length();
5889 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start < 0) {
5890
            start = 0;
5891
        }
5892 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start > len) {
5893
            start = len;
5894
        }
5895 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (end < 0) {
5896
            end = 0;
5897
        }
5898 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (end > len) {
5899
            end = len;
5900
        }
5901 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start > end) {
5902
            final int temp = start;
5903
            start = end;
5904
            end = temp;
5905
        }
5906 5 1. overlay : Replaced integer subtraction with addition → SURVIVED
2. overlay : Replaced integer addition with subtraction → KILLED
3. overlay : Replaced integer addition with subtraction → KILLED
4. overlay : Replaced integer addition with subtraction → KILLED
5. overlay : mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new StringBuilder(len + start - end + overlay.length() + 1)
5907
            .append(str.substring(0, start))
5908
            .append(overlay)
5909
            .append(str.substring(end))
5910
            .toString();
5911
    }
5912
5913
    // Chomping
5914
    //-----------------------------------------------------------------------
5915
    /**
5916
     * <p>Removes one newline from end of a String if it's there,
5917
     * otherwise leave it alone.  A newline is &quot;{@code \n}&quot;,
5918
     * &quot;{@code \r}&quot;, or &quot;{@code \r\n}&quot;.</p>
5919
     *
5920
     * <p>NOTE: This method changed in 2.0.
5921
     * It now more closely matches Perl chomp.</p>
5922
     *
5923
     * <pre>
5924
     * StringUtils.chomp(null)          = null
5925
     * StringUtils.chomp("")            = ""
5926
     * StringUtils.chomp("abc \r")      = "abc "
5927
     * StringUtils.chomp("abc\n")       = "abc"
5928
     * StringUtils.chomp("abc\r\n")     = "abc"
5929
     * StringUtils.chomp("abc\r\n\r\n") = "abc\r\n"
5930
     * StringUtils.chomp("abc\n\r")     = "abc\n"
5931
     * StringUtils.chomp("abc\n\rabc")  = "abc\n\rabc"
5932
     * StringUtils.chomp("\r")          = ""
5933
     * StringUtils.chomp("\n")          = ""
5934
     * StringUtils.chomp("\r\n")        = ""
5935
     * </pre>
5936
     *
5937
     * @param str  the String to chomp a newline from, may be null
5938
     * @return String without newline, {@code null} if null String input
5939
     */
5940
    public static String chomp(final String str) {
5941 1 1. chomp : negated conditional → KILLED
        if (isEmpty(str)) {
5942 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5943
        }
5944
5945 1 1. chomp : negated conditional → KILLED
        if (str.length() == 1) {
5946
            final char ch = str.charAt(0);
5947 2 1. chomp : negated conditional → KILLED
2. chomp : negated conditional → KILLED
            if (ch == CharUtils.CR || ch == CharUtils.LF) {
5948 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return EMPTY;
5949
            }
5950 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5951
        }
5952
5953 1 1. chomp : Replaced integer subtraction with addition → KILLED
        int lastIdx = str.length() - 1;
5954
        final char last = str.charAt(lastIdx);
5955
5956 1 1. chomp : negated conditional → KILLED
        if (last == CharUtils.LF) {
5957 2 1. chomp : Replaced integer subtraction with addition → KILLED
2. chomp : negated conditional → KILLED
            if (str.charAt(lastIdx - 1) == CharUtils.CR) {
5958 1 1. chomp : Changed increment from -1 to 1 → KILLED
                lastIdx--;
5959
            }
5960 1 1. chomp : negated conditional → KILLED
        } else if (last != CharUtils.CR) {
5961 1 1. chomp : Changed increment from 1 to -1 → KILLED
            lastIdx++;
5962
        }
5963 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, lastIdx);
5964
    }
5965
5966
    /**
5967
     * <p>Removes {@code separator} from the end of
5968
     * {@code str} if it's there, otherwise leave it alone.</p>
5969
     *
5970
     * <p>NOTE: This method changed in version 2.0.
5971
     * It now more closely matches Perl chomp.
5972
     * For the previous behavior, use {@link #substringBeforeLast(String, String)}.
5973
     * This method uses {@link String#endsWith(String)}.</p>
5974
     *
5975
     * <pre>
5976
     * StringUtils.chomp(null, *)         = null
5977
     * StringUtils.chomp("", *)           = ""
5978
     * StringUtils.chomp("foobar", "bar") = "foo"
5979
     * StringUtils.chomp("foobar", "baz") = "foobar"
5980
     * StringUtils.chomp("foo", "foo")    = ""
5981
     * StringUtils.chomp("foo ", "foo")   = "foo "
5982
     * StringUtils.chomp(" foo", "foo")   = " "
5983
     * StringUtils.chomp("foo", "foooo")  = "foo"
5984
     * StringUtils.chomp("foo", "")       = "foo"
5985
     * StringUtils.chomp("foo", null)     = "foo"
5986
     * </pre>
5987
     *
5988
     * @param str  the String to chomp from, may be null
5989
     * @param separator  separator String, may be null
5990
     * @return String without trailing separator, {@code null} if null String input
5991
     * @deprecated This feature will be removed in Lang 4.0, use {@link StringUtils#removeEnd(String, String)} instead
5992
     */
5993
    @Deprecated
5994
    public static String chomp(final String str, final String separator) {
5995 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return removeEnd(str,separator);
5996
    }
5997
5998
    // Chopping
5999
    //-----------------------------------------------------------------------
6000
    /**
6001
     * <p>Remove the last character from a String.</p>
6002
     *
6003
     * <p>If the String ends in {@code \r\n}, then remove both
6004
     * of them.</p>
6005
     *
6006
     * <pre>
6007
     * StringUtils.chop(null)          = null
6008
     * StringUtils.chop("")            = ""
6009
     * StringUtils.chop("abc \r")      = "abc "
6010
     * StringUtils.chop("abc\n")       = "abc"
6011
     * StringUtils.chop("abc\r\n")     = "abc"
6012
     * StringUtils.chop("abc")         = "ab"
6013
     * StringUtils.chop("abc\nabc")    = "abc\nab"
6014
     * StringUtils.chop("a")           = ""
6015
     * StringUtils.chop("\r")          = ""
6016
     * StringUtils.chop("\n")          = ""
6017
     * StringUtils.chop("\r\n")        = ""
6018
     * </pre>
6019
     *
6020
     * @param str  the String to chop last character from, may be null
6021
     * @return String without last character, {@code null} if null String input
6022
     */
6023
    public static String chop(final String str) {
6024 1 1. chop : negated conditional → KILLED
        if (str == null) {
6025 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6026
        }
6027
        final int strLen = str.length();
6028 2 1. chop : changed conditional boundary → SURVIVED
2. chop : negated conditional → KILLED
        if (strLen < 2) {
6029 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6030
        }
6031 1 1. chop : Replaced integer subtraction with addition → KILLED
        final int lastIdx = strLen - 1;
6032
        final String ret = str.substring(0, lastIdx);
6033
        final char last = str.charAt(lastIdx);
6034 3 1. chop : Replaced integer subtraction with addition → KILLED
2. chop : negated conditional → KILLED
3. chop : negated conditional → KILLED
        if (last == CharUtils.LF && ret.charAt(lastIdx - 1) == CharUtils.CR) {
6035 2 1. chop : Replaced integer subtraction with addition → KILLED
2. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ret.substring(0, lastIdx - 1);
6036
        }
6037 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return ret;
6038
    }
6039
6040
    // Conversion
6041
    //-----------------------------------------------------------------------
6042
6043
    // Padding
6044
    //-----------------------------------------------------------------------
6045
    /**
6046
     * <p>Repeat a String {@code repeat} times to form a
6047
     * new String.</p>
6048
     *
6049
     * <pre>
6050
     * StringUtils.repeat(null, 2) = null
6051
     * StringUtils.repeat("", 0)   = ""
6052
     * StringUtils.repeat("", 2)   = ""
6053
     * StringUtils.repeat("a", 3)  = "aaa"
6054
     * StringUtils.repeat("ab", 2) = "abab"
6055
     * StringUtils.repeat("a", -2) = ""
6056
     * </pre>
6057
     *
6058
     * @param str  the String to repeat, may be null
6059
     * @param repeat  number of times to repeat str, negative treated as zero
6060
     * @return a new String consisting of the original String repeated,
6061
     *  {@code null} if null String input
6062
     */
6063
    public static String repeat(final String str, final int repeat) {
6064
        // Performance tuned for 2.0 (JDK1.4)
6065
6066 1 1. repeat : negated conditional → KILLED
        if (str == null) {
6067 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6068
        }
6069 2 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → KILLED
        if (repeat <= 0) {
6070 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6071
        }
6072
        final int inputLength = str.length();
6073 2 1. repeat : negated conditional → KILLED
2. repeat : negated conditional → KILLED
        if (repeat == 1 || inputLength == 0) {
6074 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6075
        }
6076 3 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → SURVIVED
3. repeat : negated conditional → KILLED
        if (inputLength == 1 && repeat <= PAD_LIMIT) {
6077 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return repeat(str.charAt(0), repeat);
6078
        }
6079
6080 1 1. repeat : Replaced integer multiplication with division → KILLED
        final int outputLength = inputLength * repeat;
6081
        switch (inputLength) {
6082
            case 1 :
6083 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return repeat(str.charAt(0), repeat);
6084
            case 2 :
6085
                final char ch0 = str.charAt(0);
6086
                final char ch1 = str.charAt(1);
6087
                final char[] output2 = new char[outputLength];
6088 6 1. repeat : Changed increment from -1 to 1 → TIMED_OUT
2. repeat : Changed increment from -1 to 1 → TIMED_OUT
3. repeat : changed conditional boundary → KILLED
4. repeat : Replaced integer multiplication with division → KILLED
5. repeat : Replaced integer subtraction with addition → KILLED
6. repeat : negated conditional → KILLED
                for (int i = repeat * 2 - 2; i >= 0; i--, i--) {
6089
                    output2[i] = ch0;
6090 1 1. repeat : Replaced integer addition with subtraction → KILLED
                    output2[i + 1] = ch1;
6091
                }
6092 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return new String(output2);
6093
            default :
6094
                final StringBuilder buf = new StringBuilder(outputLength);
6095 3 1. repeat : changed conditional boundary → KILLED
2. repeat : Changed increment from 1 to -1 → KILLED
3. repeat : negated conditional → KILLED
                for (int i = 0; i < repeat; i++) {
6096
                    buf.append(str);
6097
                }
6098 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return buf.toString();
6099
        }
6100
    }
6101
6102
    /**
6103
     * <p>Repeat a String {@code repeat} times to form a
6104
     * new String, with a String separator injected each time. </p>
6105
     *
6106
     * <pre>
6107
     * StringUtils.repeat(null, null, 2) = null
6108
     * StringUtils.repeat(null, "x", 2)  = null
6109
     * StringUtils.repeat("", null, 0)   = ""
6110
     * StringUtils.repeat("", "", 2)     = ""
6111
     * StringUtils.repeat("", "x", 3)    = "xxx"
6112
     * StringUtils.repeat("?", ", ", 3)  = "?, ?, ?"
6113
     * </pre>
6114
     *
6115
     * @param str        the String to repeat, may be null
6116
     * @param separator  the String to inject, may be null
6117
     * @param repeat     number of times to repeat str, negative treated as zero
6118
     * @return a new String consisting of the original String repeated,
6119
     *  {@code null} if null String input
6120
     * @since 2.5
6121
     */
6122
    public static String repeat(final String str, final String separator, final int repeat) {
6123 2 1. repeat : negated conditional → KILLED
2. repeat : negated conditional → KILLED
        if(str == null || separator == null) {
6124 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return repeat(str, repeat);
6125
        }
6126
        // given that repeat(String, int) is quite optimized, better to rely on it than try and splice this into it
6127
        final String result = repeat(str + separator, repeat);
6128 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return removeEnd(result, separator);
6129
    }
6130
6131
    /**
6132
     * <p>Returns padding using the specified delimiter repeated
6133
     * to a given length.</p>
6134
     *
6135
     * <pre>
6136
     * StringUtils.repeat('e', 0)  = ""
6137
     * StringUtils.repeat('e', 3)  = "eee"
6138
     * StringUtils.repeat('e', -2) = ""
6139
     * </pre>
6140
     *
6141
     * <p>Note: this method doesn't not support padding with
6142
     * <a href="http://www.unicode.org/glossary/#supplementary_character">Unicode Supplementary Characters</a>
6143
     * as they require a pair of {@code char}s to be represented.
6144
     * If you are needing to support full I18N of your applications
6145
     * consider using {@link #repeat(String, int)} instead.
6146
     * </p>
6147
     *
6148
     * @param ch  character to repeat
6149
     * @param repeat  number of times to repeat char, negative treated as zero
6150
     * @return String with repeated character
6151
     * @see #repeat(String, int)
6152
     */
6153
    public static String repeat(final char ch, final int repeat) {
6154 2 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → KILLED
        if (repeat <= 0) {
6155 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6156
        }
6157
        final char[] buf = new char[repeat];
6158 4 1. repeat : changed conditional boundary → KILLED
2. repeat : Changed increment from -1 to 1 → KILLED
3. repeat : Replaced integer subtraction with addition → KILLED
4. repeat : negated conditional → KILLED
        for (int i = repeat - 1; i >= 0; i--) {
6159
            buf[i] = ch;
6160
        }
6161 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(buf);
6162
    }
6163
6164
    /**
6165
     * <p>Right pad a String with spaces (' ').</p>
6166
     *
6167
     * <p>The String is padded to the size of {@code size}.</p>
6168
     *
6169
     * <pre>
6170
     * StringUtils.rightPad(null, *)   = null
6171
     * StringUtils.rightPad("", 3)     = "   "
6172
     * StringUtils.rightPad("bat", 3)  = "bat"
6173
     * StringUtils.rightPad("bat", 5)  = "bat  "
6174
     * StringUtils.rightPad("bat", 1)  = "bat"
6175
     * StringUtils.rightPad("bat", -1) = "bat"
6176
     * </pre>
6177
     *
6178
     * @param str  the String to pad out, may be null
6179
     * @param size  the size to pad to
6180
     * @return right padded String or original String if no padding is necessary,
6181
     *  {@code null} if null String input
6182
     */
6183
    public static String rightPad(final String str, final int size) {
6184 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return rightPad(str, size, ' ');
6185
    }
6186
6187
    /**
6188
     * <p>Right pad a String with a specified character.</p>
6189
     *
6190
     * <p>The String is padded to the size of {@code size}.</p>
6191
     *
6192
     * <pre>
6193
     * StringUtils.rightPad(null, *, *)     = null
6194
     * StringUtils.rightPad("", 3, 'z')     = "zzz"
6195
     * StringUtils.rightPad("bat", 3, 'z')  = "bat"
6196
     * StringUtils.rightPad("bat", 5, 'z')  = "batzz"
6197
     * StringUtils.rightPad("bat", 1, 'z')  = "bat"
6198
     * StringUtils.rightPad("bat", -1, 'z') = "bat"
6199
     * </pre>
6200
     *
6201
     * @param str  the String to pad out, may be null
6202
     * @param size  the size to pad to
6203
     * @param padChar  the character to pad with
6204
     * @return right padded String or original String if no padding is necessary,
6205
     *  {@code null} if null String input
6206
     * @since 2.0
6207
     */
6208
    public static String rightPad(final String str, final int size, final char padChar) {
6209 1 1. rightPad : negated conditional → KILLED
        if (str == null) {
6210 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6211
        }
6212 1 1. rightPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - str.length();
6213 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads <= 0) {
6214 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6215
        }
6216 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads > PAD_LIMIT) {
6217 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return rightPad(str, size, String.valueOf(padChar));
6218
        }
6219 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.concat(repeat(padChar, pads));
6220
    }
6221
6222
    /**
6223
     * <p>Right pad a String with a specified String.</p>
6224
     *
6225
     * <p>The String is padded to the size of {@code size}.</p>
6226
     *
6227
     * <pre>
6228
     * StringUtils.rightPad(null, *, *)      = null
6229
     * StringUtils.rightPad("", 3, "z")      = "zzz"
6230
     * StringUtils.rightPad("bat", 3, "yz")  = "bat"
6231
     * StringUtils.rightPad("bat", 5, "yz")  = "batyz"
6232
     * StringUtils.rightPad("bat", 8, "yz")  = "batyzyzy"
6233
     * StringUtils.rightPad("bat", 1, "yz")  = "bat"
6234
     * StringUtils.rightPad("bat", -1, "yz") = "bat"
6235
     * StringUtils.rightPad("bat", 5, null)  = "bat  "
6236
     * StringUtils.rightPad("bat", 5, "")    = "bat  "
6237
     * </pre>
6238
     *
6239
     * @param str  the String to pad out, may be null
6240
     * @param size  the size to pad to
6241
     * @param padStr  the String to pad with, null or empty treated as single space
6242
     * @return right padded String or original String if no padding is necessary,
6243
     *  {@code null} if null String input
6244
     */
6245
    public static String rightPad(final String str, final int size, String padStr) {
6246 1 1. rightPad : negated conditional → KILLED
        if (str == null) {
6247 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6248
        }
6249 1 1. rightPad : negated conditional → KILLED
        if (isEmpty(padStr)) {
6250
            padStr = SPACE;
6251
        }
6252
        final int padLen = padStr.length();
6253
        final int strLen = str.length();
6254 1 1. rightPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6255 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads <= 0) {
6256 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6257
        }
6258 3 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
3. rightPad : negated conditional → KILLED
        if (padLen == 1 && pads <= PAD_LIMIT) {
6259 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return rightPad(str, size, padStr.charAt(0));
6260
        }
6261
6262 1 1. rightPad : negated conditional → KILLED
        if (pads == padLen) {
6263 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(padStr);
6264 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        } else if (pads < padLen) {
6265 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(padStr.substring(0, pads));
6266
        } else {
6267
            final char[] padding = new char[pads];
6268
            final char[] padChars = padStr.toCharArray();
6269 3 1. rightPad : changed conditional boundary → KILLED
2. rightPad : Changed increment from 1 to -1 → KILLED
3. rightPad : negated conditional → KILLED
            for (int i = 0; i < pads; i++) {
6270 1 1. rightPad : Replaced integer modulus with multiplication → KILLED
                padding[i] = padChars[i % padLen];
6271
            }
6272 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(new String(padding));
6273
        }
6274
    }
6275
6276
    /**
6277
     * <p>Left pad a String with spaces (' ').</p>
6278
     *
6279
     * <p>The String is padded to the size of {@code size}.</p>
6280
     *
6281
     * <pre>
6282
     * StringUtils.leftPad(null, *)   = null
6283
     * StringUtils.leftPad("", 3)     = "   "
6284
     * StringUtils.leftPad("bat", 3)  = "bat"
6285
     * StringUtils.leftPad("bat", 5)  = "  bat"
6286
     * StringUtils.leftPad("bat", 1)  = "bat"
6287
     * StringUtils.leftPad("bat", -1) = "bat"
6288
     * </pre>
6289
     *
6290
     * @param str  the String to pad out, may be null
6291
     * @param size  the size to pad to
6292
     * @return left padded String or original String if no padding is necessary,
6293
     *  {@code null} if null String input
6294
     */
6295
    public static String leftPad(final String str, final int size) {
6296 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return leftPad(str, size, ' ');
6297
    }
6298
6299
    /**
6300
     * <p>Left pad a String with a specified character.</p>
6301
     *
6302
     * <p>Pad to a size of {@code size}.</p>
6303
     *
6304
     * <pre>
6305
     * StringUtils.leftPad(null, *, *)     = null
6306
     * StringUtils.leftPad("", 3, 'z')     = "zzz"
6307
     * StringUtils.leftPad("bat", 3, 'z')  = "bat"
6308
     * StringUtils.leftPad("bat", 5, 'z')  = "zzbat"
6309
     * StringUtils.leftPad("bat", 1, 'z')  = "bat"
6310
     * StringUtils.leftPad("bat", -1, 'z') = "bat"
6311
     * </pre>
6312
     *
6313
     * @param str  the String to pad out, may be null
6314
     * @param size  the size to pad to
6315
     * @param padChar  the character to pad with
6316
     * @return left padded String or original String if no padding is necessary,
6317
     *  {@code null} if null String input
6318
     * @since 2.0
6319
     */
6320
    public static String leftPad(final String str, final int size, final char padChar) {
6321 1 1. leftPad : negated conditional → KILLED
        if (str == null) {
6322 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6323
        }
6324 1 1. leftPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - str.length();
6325 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads <= 0) {
6326 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6327
        }
6328 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads > PAD_LIMIT) {
6329 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return leftPad(str, size, String.valueOf(padChar));
6330
        }
6331 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return repeat(padChar, pads).concat(str);
6332
    }
6333
6334
    /**
6335
     * <p>Left pad a String with a specified String.</p>
6336
     *
6337
     * <p>Pad to a size of {@code size}.</p>
6338
     *
6339
     * <pre>
6340
     * StringUtils.leftPad(null, *, *)      = null
6341
     * StringUtils.leftPad("", 3, "z")      = "zzz"
6342
     * StringUtils.leftPad("bat", 3, "yz")  = "bat"
6343
     * StringUtils.leftPad("bat", 5, "yz")  = "yzbat"
6344
     * StringUtils.leftPad("bat", 8, "yz")  = "yzyzybat"
6345
     * StringUtils.leftPad("bat", 1, "yz")  = "bat"
6346
     * StringUtils.leftPad("bat", -1, "yz") = "bat"
6347
     * StringUtils.leftPad("bat", 5, null)  = "  bat"
6348
     * StringUtils.leftPad("bat", 5, "")    = "  bat"
6349
     * </pre>
6350
     *
6351
     * @param str  the String to pad out, may be null
6352
     * @param size  the size to pad to
6353
     * @param padStr  the String to pad with, null or empty treated as single space
6354
     * @return left padded String or original String if no padding is necessary,
6355
     *  {@code null} if null String input
6356
     */
6357
    public static String leftPad(final String str, final int size, String padStr) {
6358 1 1. leftPad : negated conditional → KILLED
        if (str == null) {
6359 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6360
        }
6361 1 1. leftPad : negated conditional → KILLED
        if (isEmpty(padStr)) {
6362
            padStr = SPACE;
6363
        }
6364
        final int padLen = padStr.length();
6365
        final int strLen = str.length();
6366 1 1. leftPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6367 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads <= 0) {
6368 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6369
        }
6370 3 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
3. leftPad : negated conditional → KILLED
        if (padLen == 1 && pads <= PAD_LIMIT) {
6371 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return leftPad(str, size, padStr.charAt(0));
6372
        }
6373
6374 1 1. leftPad : negated conditional → KILLED
        if (pads == padLen) {
6375 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return padStr.concat(str);
6376 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        } else if (pads < padLen) {
6377 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return padStr.substring(0, pads).concat(str);
6378
        } else {
6379
            final char[] padding = new char[pads];
6380
            final char[] padChars = padStr.toCharArray();
6381 3 1. leftPad : changed conditional boundary → KILLED
2. leftPad : Changed increment from 1 to -1 → KILLED
3. leftPad : negated conditional → KILLED
            for (int i = 0; i < pads; i++) {
6382 1 1. leftPad : Replaced integer modulus with multiplication → KILLED
                padding[i] = padChars[i % padLen];
6383
            }
6384 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return new String(padding).concat(str);
6385
        }
6386
    }
6387
6388
    /**
6389
     * Gets a CharSequence length or {@code 0} if the CharSequence is
6390
     * {@code null}.
6391
     *
6392
     * @param cs
6393
     *            a CharSequence or {@code null}
6394
     * @return CharSequence length or {@code 0} if the CharSequence is
6395
     *         {@code null}.
6396
     * @since 2.4
6397
     * @since 3.0 Changed signature from length(String) to length(CharSequence)
6398
     */
6399
    public static int length(final CharSequence cs) {
6400 2 1. length : negated conditional → KILLED
2. length : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return cs == null ? 0 : cs.length();
6401
    }
6402
6403
    // Centering
6404
    //-----------------------------------------------------------------------
6405
    /**
6406
     * <p>Centers a String in a larger String of size {@code size}
6407
     * using the space character (' ').</p>
6408
     *
6409
     * <p>If the size is less than the String length, the String is returned.
6410
     * A {@code null} String returns {@code null}.
6411
     * A negative size is treated as zero.</p>
6412
     *
6413
     * <p>Equivalent to {@code center(str, size, " ")}.</p>
6414
     *
6415
     * <pre>
6416
     * StringUtils.center(null, *)   = null
6417
     * StringUtils.center("", 4)     = "    "
6418
     * StringUtils.center("ab", -1)  = "ab"
6419
     * StringUtils.center("ab", 4)   = " ab "
6420
     * StringUtils.center("abcd", 2) = "abcd"
6421
     * StringUtils.center("a", 4)    = " a  "
6422
     * </pre>
6423
     *
6424
     * @param str  the String to center, may be null
6425
     * @param size  the int size of new String, negative treated as zero
6426
     * @return centered String, {@code null} if null String input
6427
     */
6428
    public static String center(final String str, final int size) {
6429 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return center(str, size, ' ');
6430
    }
6431
6432
    /**
6433
     * <p>Centers a String in a larger String of size {@code size}.
6434
     * Uses a supplied character as the value to pad the String with.</p>
6435
     *
6436
     * <p>If the size is less than the String length, the String is returned.
6437
     * A {@code null} String returns {@code null}.
6438
     * A negative size is treated as zero.</p>
6439
     *
6440
     * <pre>
6441
     * StringUtils.center(null, *, *)     = null
6442
     * StringUtils.center("", 4, ' ')     = "    "
6443
     * StringUtils.center("ab", -1, ' ')  = "ab"
6444
     * StringUtils.center("ab", 4, ' ')   = " ab "
6445
     * StringUtils.center("abcd", 2, ' ') = "abcd"
6446
     * StringUtils.center("a", 4, ' ')    = " a  "
6447
     * StringUtils.center("a", 4, 'y')    = "yayy"
6448
     * </pre>
6449
     *
6450
     * @param str  the String to center, may be null
6451
     * @param size  the int size of new String, negative treated as zero
6452
     * @param padChar  the character to pad the new String with
6453
     * @return centered String, {@code null} if null String input
6454
     * @since 2.0
6455
     */
6456
    public static String center(String str, final int size, final char padChar) {
6457 3 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
3. center : negated conditional → KILLED
        if (str == null || size <= 0) {
6458 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6459
        }
6460
        final int strLen = str.length();
6461 1 1. center : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6462 2 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
        if (pads <= 0) {
6463 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6464
        }
6465 2 1. center : Replaced integer division with multiplication → KILLED
2. center : Replaced integer addition with subtraction → KILLED
        str = leftPad(str, strLen + pads / 2, padChar);
6466
        str = rightPad(str, size, padChar);
6467 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
6468
    }
6469
6470
    /**
6471
     * <p>Centers a String in a larger String of size {@code size}.
6472
     * Uses a supplied String as the value to pad the String with.</p>
6473
     *
6474
     * <p>If the size is less than the String length, the String is returned.
6475
     * A {@code null} String returns {@code null}.
6476
     * A negative size is treated as zero.</p>
6477
     *
6478
     * <pre>
6479
     * StringUtils.center(null, *, *)     = null
6480
     * StringUtils.center("", 4, " ")     = "    "
6481
     * StringUtils.center("ab", -1, " ")  = "ab"
6482
     * StringUtils.center("ab", 4, " ")   = " ab "
6483
     * StringUtils.center("abcd", 2, " ") = "abcd"
6484
     * StringUtils.center("a", 4, " ")    = " a  "
6485
     * StringUtils.center("a", 4, "yz")   = "yayz"
6486
     * StringUtils.center("abc", 7, null) = "  abc  "
6487
     * StringUtils.center("abc", 7, "")   = "  abc  "
6488
     * </pre>
6489
     *
6490
     * @param str  the String to center, may be null
6491
     * @param size  the int size of new String, negative treated as zero
6492
     * @param padStr  the String to pad the new String with, must not be null or empty
6493
     * @return centered String, {@code null} if null String input
6494
     * @throws IllegalArgumentException if padStr is {@code null} or empty
6495
     */
6496
    public static String center(String str, final int size, String padStr) {
6497 3 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
3. center : negated conditional → KILLED
        if (str == null || size <= 0) {
6498 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6499
        }
6500 1 1. center : negated conditional → KILLED
        if (isEmpty(padStr)) {
6501
            padStr = SPACE;
6502
        }
6503
        final int strLen = str.length();
6504 1 1. center : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6505 2 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
        if (pads <= 0) {
6506 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6507
        }
6508 2 1. center : Replaced integer division with multiplication → KILLED
2. center : Replaced integer addition with subtraction → KILLED
        str = leftPad(str, strLen + pads / 2, padStr);
6509
        str = rightPad(str, size, padStr);
6510 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
6511
    }
6512
6513
    // Case conversion
6514
    //-----------------------------------------------------------------------
6515
    /**
6516
     * <p>Converts a String to upper case as per {@link String#toUpperCase()}.</p>
6517
     *
6518
     * <p>A {@code null} input String returns {@code null}.</p>
6519
     *
6520
     * <pre>
6521
     * StringUtils.upperCase(null)  = null
6522
     * StringUtils.upperCase("")    = ""
6523
     * StringUtils.upperCase("aBc") = "ABC"
6524
     * </pre>
6525
     *
6526
     * <p><strong>Note:</strong> As described in the documentation for {@link String#toUpperCase()},
6527
     * the result of this method is affected by the current locale.
6528
     * For platform-independent case transformations, the method {@link #lowerCase(String, Locale)}
6529
     * should be used with a specific locale (e.g. {@link Locale#ENGLISH}).</p>
6530
     *
6531
     * @param str  the String to upper case, may be null
6532
     * @return the upper cased String, {@code null} if null String input
6533
     */
6534
    public static String upperCase(final String str) {
6535 1 1. upperCase : negated conditional → KILLED
        if (str == null) {
6536 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6537
        }
6538 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toUpperCase();
6539
    }
6540
6541
    /**
6542
     * <p>Converts a String to upper case as per {@link String#toUpperCase(Locale)}.</p>
6543
     *
6544
     * <p>A {@code null} input String returns {@code null}.</p>
6545
     *
6546
     * <pre>
6547
     * StringUtils.upperCase(null, Locale.ENGLISH)  = null
6548
     * StringUtils.upperCase("", Locale.ENGLISH)    = ""
6549
     * StringUtils.upperCase("aBc", Locale.ENGLISH) = "ABC"
6550
     * </pre>
6551
     *
6552
     * @param str  the String to upper case, may be null
6553
     * @param locale  the locale that defines the case transformation rules, must not be null
6554
     * @return the upper cased String, {@code null} if null String input
6555
     * @since 2.5
6556
     */
6557
    public static String upperCase(final String str, final Locale locale) {
6558 1 1. upperCase : negated conditional → KILLED
        if (str == null) {
6559 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6560
        }
6561 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toUpperCase(locale);
6562
    }
6563
6564
    /**
6565
     * <p>Converts a String to lower case as per {@link String#toLowerCase()}.</p>
6566
     *
6567
     * <p>A {@code null} input String returns {@code null}.</p>
6568
     *
6569
     * <pre>
6570
     * StringUtils.lowerCase(null)  = null
6571
     * StringUtils.lowerCase("")    = ""
6572
     * StringUtils.lowerCase("aBc") = "abc"
6573
     * </pre>
6574
     *
6575
     * <p><strong>Note:</strong> As described in the documentation for {@link String#toLowerCase()},
6576
     * the result of this method is affected by the current locale.
6577
     * For platform-independent case transformations, the method {@link #lowerCase(String, Locale)}
6578
     * should be used with a specific locale (e.g. {@link Locale#ENGLISH}).</p>
6579
     *
6580
     * @param str  the String to lower case, may be null
6581
     * @return the lower cased String, {@code null} if null String input
6582
     */
6583
    public static String lowerCase(final String str) {
6584 1 1. lowerCase : negated conditional → KILLED
        if (str == null) {
6585 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6586
        }
6587 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toLowerCase();
6588
    }
6589
6590
    /**
6591
     * <p>Converts a String to lower case as per {@link String#toLowerCase(Locale)}.</p>
6592
     *
6593
     * <p>A {@code null} input String returns {@code null}.</p>
6594
     *
6595
     * <pre>
6596
     * StringUtils.lowerCase(null, Locale.ENGLISH)  = null
6597
     * StringUtils.lowerCase("", Locale.ENGLISH)    = ""
6598
     * StringUtils.lowerCase("aBc", Locale.ENGLISH) = "abc"
6599
     * </pre>
6600
     *
6601
     * @param str  the String to lower case, may be null
6602
     * @param locale  the locale that defines the case transformation rules, must not be null
6603
     * @return the lower cased String, {@code null} if null String input
6604
     * @since 2.5
6605
     */
6606
    public static String lowerCase(final String str, final Locale locale) {
6607 1 1. lowerCase : negated conditional → KILLED
        if (str == null) {
6608 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6609
        }
6610 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toLowerCase(locale);
6611
    }
6612
6613
    /**
6614
     * <p>Capitalizes a String changing the first character to title case as
6615
     * per {@link Character#toTitleCase(int)}. No other characters are changed.</p>
6616
     *
6617
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#capitalize(String)}.
6618
     * A {@code null} input String returns {@code null}.</p>
6619
     *
6620
     * <pre>
6621
     * StringUtils.capitalize(null)  = null
6622
     * StringUtils.capitalize("")    = ""
6623
     * StringUtils.capitalize("cat") = "Cat"
6624
     * StringUtils.capitalize("cAt") = "CAt"
6625
     * StringUtils.capitalize("'cat'") = "'cat'"
6626
     * </pre>
6627
     *
6628
     * @param str the String to capitalize, may be null
6629
     * @return the capitalized String, {@code null} if null String input
6630
     * @see org.apache.commons.lang3.text.WordUtils#capitalize(String)
6631
     * @see #uncapitalize(String)
6632
     * @since 2.0
6633
     */
6634
    public static String capitalize(final String str) {
6635
        int strLen;
6636 2 1. capitalize : negated conditional → KILLED
2. capitalize : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
6637 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6638
        }
6639
6640
        final int firstCodepoint = str.codePointAt(0);
6641
        final int newCodePoint = Character.toTitleCase(firstCodepoint);
6642 1 1. capitalize : negated conditional → KILLED
        if (firstCodepoint == newCodePoint) {
6643
            // already capitalized
6644 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6645
        }
6646
6647
        final int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6648
        int outOffset = 0;
6649 1 1. capitalize : Changed increment from 1 to -1 → KILLED
        newCodePoints[outOffset++] = newCodePoint; // copy the first codepoint
6650 2 1. capitalize : changed conditional boundary → KILLED
2. capitalize : negated conditional → KILLED
        for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
6651
            final int codepoint = str.codePointAt(inOffset);
6652 1 1. capitalize : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = codepoint; // copy the remaining ones
6653 1 1. capitalize : Replaced integer addition with subtraction → KILLED
            inOffset += Character.charCount(codepoint);
6654
         }
6655 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6656
    }
6657
6658
    /**
6659
     * <p>Uncapitalizes a String, changing the first character to lower case as
6660
     * per {@link Character#toLowerCase(int)}. No other characters are changed.</p>
6661
     *
6662
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#uncapitalize(String)}.
6663
     * A {@code null} input String returns {@code null}.</p>
6664
     *
6665
     * <pre>
6666
     * StringUtils.uncapitalize(null)  = null
6667
     * StringUtils.uncapitalize("")    = ""
6668
     * StringUtils.uncapitalize("cat") = "cat"
6669
     * StringUtils.uncapitalize("Cat") = "cat"
6670
     * StringUtils.uncapitalize("CAT") = "cAT"
6671
     * </pre>
6672
     *
6673
     * @param str the String to uncapitalize, may be null
6674
     * @return the uncapitalized String, {@code null} if null String input
6675
     * @see org.apache.commons.lang3.text.WordUtils#uncapitalize(String)
6676
     * @see #capitalize(String)
6677
     * @since 2.0
6678
     */
6679
    public static String uncapitalize(final String str) {
6680
        int strLen;
6681 2 1. uncapitalize : negated conditional → KILLED
2. uncapitalize : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
6682 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6683
        }
6684
6685
        final int firstCodepoint = str.codePointAt(0);
6686
        final int newCodePoint = Character.toLowerCase(firstCodepoint);
6687 1 1. uncapitalize : negated conditional → KILLED
        if (firstCodepoint == newCodePoint) {
6688
            // already capitalized
6689 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6690
        }
6691
6692
        final int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6693
        int outOffset = 0;
6694 1 1. uncapitalize : Changed increment from 1 to -1 → KILLED
        newCodePoints[outOffset++] = newCodePoint; // copy the first codepoint
6695 2 1. uncapitalize : changed conditional boundary → KILLED
2. uncapitalize : negated conditional → KILLED
        for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
6696
            final int codepoint = str.codePointAt(inOffset);
6697 1 1. uncapitalize : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = codepoint; // copy the remaining ones
6698 1 1. uncapitalize : Replaced integer addition with subtraction → KILLED
            inOffset += Character.charCount(codepoint);
6699
         }
6700 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6701
    }
6702
6703
    /**
6704
     * <p>Swaps the case of a String changing upper and title case to
6705
     * lower case, and lower case to upper case.</p>
6706
     *
6707
     * <ul>
6708
     *  <li>Upper case character converts to Lower case</li>
6709
     *  <li>Title case character converts to Lower case</li>
6710
     *  <li>Lower case character converts to Upper case</li>
6711
     * </ul>
6712
     *
6713
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#swapCase(String)}.
6714
     * A {@code null} input String returns {@code null}.</p>
6715
     *
6716
     * <pre>
6717
     * StringUtils.swapCase(null)                 = null
6718
     * StringUtils.swapCase("")                   = ""
6719
     * StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"
6720
     * </pre>
6721
     *
6722
     * <p>NOTE: This method changed in Lang version 2.0.
6723
     * It no longer performs a word based algorithm.
6724
     * If you only use ASCII, you will notice no change.
6725
     * That functionality is available in org.apache.commons.lang3.text.WordUtils.</p>
6726
     *
6727
     * @param str  the String to swap case, may be null
6728
     * @return the changed String, {@code null} if null String input
6729
     */
6730
    public static String swapCase(final String str) {
6731 1 1. swapCase : negated conditional → KILLED
        if (StringUtils.isEmpty(str)) {
6732 1 1. swapCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6733
        }
6734
6735
        final int strLen = str.length();
6736
        final int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6737
        int outOffset = 0;
6738 2 1. swapCase : changed conditional boundary → KILLED
2. swapCase : negated conditional → KILLED
        for (int i = 0; i < strLen; ) {
6739
            final int oldCodepoint = str.codePointAt(i);
6740
            final int newCodePoint;
6741 1 1. swapCase : negated conditional → KILLED
            if (Character.isUpperCase(oldCodepoint)) {
6742
                newCodePoint = Character.toLowerCase(oldCodepoint);
6743 1 1. swapCase : negated conditional → KILLED
            } else if (Character.isTitleCase(oldCodepoint)) {
6744
                newCodePoint = Character.toLowerCase(oldCodepoint);
6745 1 1. swapCase : negated conditional → KILLED
            } else if (Character.isLowerCase(oldCodepoint)) {
6746
                newCodePoint = Character.toUpperCase(oldCodepoint);
6747
            } else {
6748
                newCodePoint = oldCodepoint;
6749
            }
6750 1 1. swapCase : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = newCodePoint;
6751 1 1. swapCase : Replaced integer addition with subtraction → KILLED
            i += Character.charCount(newCodePoint);
6752
         }
6753 1 1. swapCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6754
    }
6755
6756
    // Count matches
6757
    //-----------------------------------------------------------------------
6758
    /**
6759
     * <p>Counts how many times the substring appears in the larger string.</p>
6760
     *
6761
     * <p>A {@code null} or empty ("") String input returns {@code 0}.</p>
6762
     *
6763
     * <pre>
6764
     * StringUtils.countMatches(null, *)       = 0
6765
     * StringUtils.countMatches("", *)         = 0
6766
     * StringUtils.countMatches("abba", null)  = 0
6767
     * StringUtils.countMatches("abba", "")    = 0
6768
     * StringUtils.countMatches("abba", "a")   = 2
6769
     * StringUtils.countMatches("abba", "ab")  = 1
6770
     * StringUtils.countMatches("abba", "xxx") = 0
6771
     * </pre>
6772
     *
6773
     * @param str  the CharSequence to check, may be null
6774
     * @param sub  the substring to count, may be null
6775
     * @return the number of occurrences, 0 if either CharSequence is {@code null}
6776
     * @since 3.0 Changed signature from countMatches(String, String) to countMatches(CharSequence, CharSequence)
6777
     */
6778
    public static int countMatches(final CharSequence str, final CharSequence sub) {
6779 2 1. countMatches : negated conditional → KILLED
2. countMatches : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(sub)) {
6780 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
6781
        }
6782
        int count = 0;
6783
        int idx = 0;
6784 1 1. countMatches : negated conditional → KILLED
        while ((idx = CharSequenceUtils.indexOf(str, sub, idx)) != INDEX_NOT_FOUND) {
6785 1 1. countMatches : Changed increment from 1 to -1 → KILLED
            count++;
6786 1 1. countMatches : Replaced integer addition with subtraction → TIMED_OUT
            idx += sub.length();
6787
        }
6788 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return count;
6789
    }
6790
6791
    /**
6792
     * <p>Counts how many times the char appears in the given string.</p>
6793
     *
6794
     * <p>A {@code null} or empty ("") String input returns {@code 0}.</p>
6795
     *
6796
     * <pre>
6797
     * StringUtils.countMatches(null, *)       = 0
6798
     * StringUtils.countMatches("", *)         = 0
6799
     * StringUtils.countMatches("abba", 0)  = 0
6800
     * StringUtils.countMatches("abba", 'a')   = 2
6801
     * StringUtils.countMatches("abba", 'b')  = 2
6802
     * StringUtils.countMatches("abba", 'x') = 0
6803
     * </pre>
6804
     *
6805
     * @param str  the CharSequence to check, may be null
6806
     * @param ch  the char to count
6807
     * @return the number of occurrences, 0 if the CharSequence is {@code null}
6808
     * @since 3.4
6809
     */
6810
    public static int countMatches(final CharSequence str, final char ch) {
6811 1 1. countMatches : negated conditional → KILLED
        if (isEmpty(str)) {
6812 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
6813
        }
6814
        int count = 0;
6815
        // We could also call str.toCharArray() for faster look ups but that would generate more garbage.
6816 3 1. countMatches : changed conditional boundary → KILLED
2. countMatches : Changed increment from 1 to -1 → KILLED
3. countMatches : negated conditional → KILLED
        for (int i = 0; i < str.length(); i++) {
6817 1 1. countMatches : negated conditional → KILLED
            if (ch == str.charAt(i)) {
6818 1 1. countMatches : Changed increment from 1 to -1 → KILLED
                count++;
6819
            }
6820
        }
6821 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return count;
6822
    }
6823
6824
    // Character Tests
6825
    //-----------------------------------------------------------------------
6826
    /**
6827
     * <p>Checks if the CharSequence contains only Unicode letters.</p>
6828
     *
6829
     * <p>{@code null} will return {@code false}.
6830
     * An empty CharSequence (length()=0) will return {@code false}.</p>
6831
     *
6832
     * <pre>
6833
     * StringUtils.isAlpha(null)   = false
6834
     * StringUtils.isAlpha("")     = false
6835
     * StringUtils.isAlpha("  ")   = false
6836
     * StringUtils.isAlpha("abc")  = true
6837
     * StringUtils.isAlpha("ab2c") = false
6838
     * StringUtils.isAlpha("ab-c") = false
6839
     * </pre>
6840
     *
6841
     * @param cs  the CharSequence to check, may be null
6842
     * @return {@code true} if only contains letters, and is non-null
6843
     * @since 3.0 Changed signature from isAlpha(String) to isAlpha(CharSequence)
6844
     * @since 3.0 Changed "" to return false and not true
6845
     */
6846
    public static boolean isAlpha(final CharSequence cs) {
6847 1 1. isAlpha : negated conditional → KILLED
        if (isEmpty(cs)) {
6848 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6849
        }
6850
        final int sz = cs.length();
6851 3 1. isAlpha : changed conditional boundary → KILLED
2. isAlpha : Changed increment from 1 to -1 → KILLED
3. isAlpha : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6852 1 1. isAlpha : negated conditional → KILLED
            if (Character.isLetter(cs.charAt(i)) == false) {
6853 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6854
            }
6855
        }
6856 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6857
    }
6858
6859
    /**
6860
     * <p>Checks if the CharSequence contains only Unicode letters and
6861
     * space (' ').</p>
6862
     *
6863
     * <p>{@code null} will return {@code false}
6864
     * An empty CharSequence (length()=0) will return {@code true}.</p>
6865
     *
6866
     * <pre>
6867
     * StringUtils.isAlphaSpace(null)   = false
6868
     * StringUtils.isAlphaSpace("")     = true
6869
     * StringUtils.isAlphaSpace("  ")   = true
6870
     * StringUtils.isAlphaSpace("abc")  = true
6871
     * StringUtils.isAlphaSpace("ab c") = true
6872
     * StringUtils.isAlphaSpace("ab2c") = false
6873
     * StringUtils.isAlphaSpace("ab-c") = false
6874
     * </pre>
6875
     *
6876
     * @param cs  the CharSequence to check, may be null
6877
     * @return {@code true} if only contains letters and space,
6878
     *  and is non-null
6879
     * @since 3.0 Changed signature from isAlphaSpace(String) to isAlphaSpace(CharSequence)
6880
     */
6881
    public static boolean isAlphaSpace(final CharSequence cs) {
6882 1 1. isAlphaSpace : negated conditional → KILLED
        if (cs == null) {
6883 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6884
        }
6885
        final int sz = cs.length();
6886 3 1. isAlphaSpace : changed conditional boundary → KILLED
2. isAlphaSpace : Changed increment from 1 to -1 → KILLED
3. isAlphaSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6887 2 1. isAlphaSpace : negated conditional → KILLED
2. isAlphaSpace : negated conditional → KILLED
            if (Character.isLetter(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
6888 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6889
            }
6890
        }
6891 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6892
    }
6893
6894
    /**
6895
     * <p>Checks if the CharSequence contains only Unicode letters or digits.</p>
6896
     *
6897
     * <p>{@code null} will return {@code false}.
6898
     * An empty CharSequence (length()=0) will return {@code false}.</p>
6899
     *
6900
     * <pre>
6901
     * StringUtils.isAlphanumeric(null)   = false
6902
     * StringUtils.isAlphanumeric("")     = false
6903
     * StringUtils.isAlphanumeric("  ")   = false
6904
     * StringUtils.isAlphanumeric("abc")  = true
6905
     * StringUtils.isAlphanumeric("ab c") = false
6906
     * StringUtils.isAlphanumeric("ab2c") = true
6907
     * StringUtils.isAlphanumeric("ab-c") = false
6908
     * </pre>
6909
     *
6910
     * @param cs  the CharSequence to check, may be null
6911
     * @return {@code true} if only contains letters or digits,
6912
     *  and is non-null
6913
     * @since 3.0 Changed signature from isAlphanumeric(String) to isAlphanumeric(CharSequence)
6914
     * @since 3.0 Changed "" to return false and not true
6915
     */
6916
    public static boolean isAlphanumeric(final CharSequence cs) {
6917 1 1. isAlphanumeric : negated conditional → KILLED
        if (isEmpty(cs)) {
6918 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6919
        }
6920
        final int sz = cs.length();
6921 3 1. isAlphanumeric : changed conditional boundary → KILLED
2. isAlphanumeric : Changed increment from 1 to -1 → KILLED
3. isAlphanumeric : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6922 1 1. isAlphanumeric : negated conditional → KILLED
            if (Character.isLetterOrDigit(cs.charAt(i)) == false) {
6923 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6924
            }
6925
        }
6926 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6927
    }
6928
6929
    /**
6930
     * <p>Checks if the CharSequence contains only Unicode letters, digits
6931
     * or space ({@code ' '}).</p>
6932
     *
6933
     * <p>{@code null} will return {@code false}.
6934
     * An empty CharSequence (length()=0) will return {@code true}.</p>
6935
     *
6936
     * <pre>
6937
     * StringUtils.isAlphanumericSpace(null)   = false
6938
     * StringUtils.isAlphanumericSpace("")     = true
6939
     * StringUtils.isAlphanumericSpace("  ")   = true
6940
     * StringUtils.isAlphanumericSpace("abc")  = true
6941
     * StringUtils.isAlphanumericSpace("ab c") = true
6942
     * StringUtils.isAlphanumericSpace("ab2c") = true
6943
     * StringUtils.isAlphanumericSpace("ab-c") = false
6944
     * </pre>
6945
     *
6946
     * @param cs  the CharSequence to check, may be null
6947
     * @return {@code true} if only contains letters, digits or space,
6948
     *  and is non-null
6949
     * @since 3.0 Changed signature from isAlphanumericSpace(String) to isAlphanumericSpace(CharSequence)
6950
     */
6951
    public static boolean isAlphanumericSpace(final CharSequence cs) {
6952 1 1. isAlphanumericSpace : negated conditional → KILLED
        if (cs == null) {
6953 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6954
        }
6955
        final int sz = cs.length();
6956 3 1. isAlphanumericSpace : changed conditional boundary → KILLED
2. isAlphanumericSpace : Changed increment from 1 to -1 → KILLED
3. isAlphanumericSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6957 2 1. isAlphanumericSpace : negated conditional → KILLED
2. isAlphanumericSpace : negated conditional → KILLED
            if (Character.isLetterOrDigit(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
6958 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6959
            }
6960
        }
6961 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6962
    }
6963
6964
    /**
6965
     * <p>Checks if the CharSequence contains only ASCII printable characters.</p>
6966
     *
6967
     * <p>{@code null} will return {@code false}.
6968
     * An empty CharSequence (length()=0) will return {@code true}.</p>
6969
     *
6970
     * <pre>
6971
     * StringUtils.isAsciiPrintable(null)     = false
6972
     * StringUtils.isAsciiPrintable("")       = true
6973
     * StringUtils.isAsciiPrintable(" ")      = true
6974
     * StringUtils.isAsciiPrintable("Ceki")   = true
6975
     * StringUtils.isAsciiPrintable("ab2c")   = true
6976
     * StringUtils.isAsciiPrintable("!ab-c~") = true
6977
     * StringUtils.isAsciiPrintable("\u0020") = true
6978
     * StringUtils.isAsciiPrintable("\u0021") = true
6979
     * StringUtils.isAsciiPrintable("\u007e") = true
6980
     * StringUtils.isAsciiPrintable("\u007f") = false
6981
     * StringUtils.isAsciiPrintable("Ceki G\u00fclc\u00fc") = false
6982
     * </pre>
6983
     *
6984
     * @param cs the CharSequence to check, may be null
6985
     * @return {@code true} if every character is in the range
6986
     *  32 thru 126
6987
     * @since 2.1
6988
     * @since 3.0 Changed signature from isAsciiPrintable(String) to isAsciiPrintable(CharSequence)
6989
     */
6990
    public static boolean isAsciiPrintable(final CharSequence cs) {
6991 1 1. isAsciiPrintable : negated conditional → KILLED
        if (cs == null) {
6992 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6993
        }
6994
        final int sz = cs.length();
6995 3 1. isAsciiPrintable : changed conditional boundary → KILLED
2. isAsciiPrintable : Changed increment from 1 to -1 → KILLED
3. isAsciiPrintable : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6996 1 1. isAsciiPrintable : negated conditional → KILLED
            if (CharUtils.isAsciiPrintable(cs.charAt(i)) == false) {
6997 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6998
            }
6999
        }
7000 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7001
    }
7002
7003
    /**
7004
     * <p>Checks if the CharSequence contains only Unicode digits.
7005
     * A decimal point is not a Unicode digit and returns false.</p>
7006
     *
7007
     * <p>{@code null} will return {@code false}.
7008
     * An empty CharSequence (length()=0) will return {@code false}.</p>
7009
     *
7010
     * <p>Note that the method does not allow for a leading sign, either positive or negative.
7011
     * Also, if a String passes the numeric test, it may still generate a NumberFormatException
7012
     * when parsed by Integer.parseInt or Long.parseLong, e.g. if the value is outside the range
7013
     * for int or long respectively.</p>
7014
     *
7015
     * <pre>
7016
     * StringUtils.isNumeric(null)   = false
7017
     * StringUtils.isNumeric("")     = false
7018
     * StringUtils.isNumeric("  ")   = false
7019
     * StringUtils.isNumeric("123")  = true
7020
     * StringUtils.isNumeric("\u0967\u0968\u0969")  = true
7021
     * StringUtils.isNumeric("12 3") = false
7022
     * StringUtils.isNumeric("ab2c") = false
7023
     * StringUtils.isNumeric("12-3") = false
7024
     * StringUtils.isNumeric("12.3") = false
7025
     * StringUtils.isNumeric("-123") = false
7026
     * StringUtils.isNumeric("+123") = false
7027
     * </pre>
7028
     *
7029
     * @param cs  the CharSequence to check, may be null
7030
     * @return {@code true} if only contains digits, and is non-null
7031
     * @since 3.0 Changed signature from isNumeric(String) to isNumeric(CharSequence)
7032
     * @since 3.0 Changed "" to return false and not true
7033
     */
7034
    public static boolean isNumeric(final CharSequence cs) {
7035 1 1. isNumeric : negated conditional → KILLED
        if (isEmpty(cs)) {
7036 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7037
        }
7038
        final int sz = cs.length();
7039 3 1. isNumeric : changed conditional boundary → KILLED
2. isNumeric : Changed increment from 1 to -1 → KILLED
3. isNumeric : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7040 1 1. isNumeric : negated conditional → KILLED
            if (!Character.isDigit(cs.charAt(i))) {
7041 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7042
            }
7043
        }
7044 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7045
    }
7046
7047
    /**
7048
     * <p>Checks if the CharSequence contains only Unicode digits or space
7049
     * ({@code ' '}).
7050
     * A decimal point is not a Unicode digit and returns false.</p>
7051
     *
7052
     * <p>{@code null} will return {@code false}.
7053
     * An empty CharSequence (length()=0) will return {@code true}.</p>
7054
     *
7055
     * <pre>
7056
     * StringUtils.isNumericSpace(null)   = false
7057
     * StringUtils.isNumericSpace("")     = true
7058
     * StringUtils.isNumericSpace("  ")   = true
7059
     * StringUtils.isNumericSpace("123")  = true
7060
     * StringUtils.isNumericSpace("12 3") = true
7061
     * StringUtils.isNumeric("\u0967\u0968\u0969")  = true
7062
     * StringUtils.isNumeric("\u0967\u0968 \u0969")  = true
7063
     * StringUtils.isNumericSpace("ab2c") = false
7064
     * StringUtils.isNumericSpace("12-3") = false
7065
     * StringUtils.isNumericSpace("12.3") = false
7066
     * </pre>
7067
     *
7068
     * @param cs  the CharSequence to check, may be null
7069
     * @return {@code true} if only contains digits or space,
7070
     *  and is non-null
7071
     * @since 3.0 Changed signature from isNumericSpace(String) to isNumericSpace(CharSequence)
7072
     */
7073
    public static boolean isNumericSpace(final CharSequence cs) {
7074 1 1. isNumericSpace : negated conditional → KILLED
        if (cs == null) {
7075 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7076
        }
7077
        final int sz = cs.length();
7078 3 1. isNumericSpace : changed conditional boundary → KILLED
2. isNumericSpace : Changed increment from 1 to -1 → KILLED
3. isNumericSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7079 2 1. isNumericSpace : negated conditional → KILLED
2. isNumericSpace : negated conditional → KILLED
            if (Character.isDigit(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
7080 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7081
            }
7082
        }
7083 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7084
    }
7085
7086
    /**
7087
     * <p>Checks if the CharSequence contains only whitespace.</p>
7088
     * 
7089
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
7090
     *
7091
     * <p>{@code null} will return {@code false}.
7092
     * An empty CharSequence (length()=0) will return {@code true}.</p>
7093
     *
7094
     * <pre>
7095
     * StringUtils.isWhitespace(null)   = false
7096
     * StringUtils.isWhitespace("")     = true
7097
     * StringUtils.isWhitespace("  ")   = true
7098
     * StringUtils.isWhitespace("abc")  = false
7099
     * StringUtils.isWhitespace("ab2c") = false
7100
     * StringUtils.isWhitespace("ab-c") = false
7101
     * </pre>
7102
     *
7103
     * @param cs  the CharSequence to check, may be null
7104
     * @return {@code true} if only contains whitespace, and is non-null
7105
     * @since 2.0
7106
     * @since 3.0 Changed signature from isWhitespace(String) to isWhitespace(CharSequence)
7107
     */
7108
    public static boolean isWhitespace(final CharSequence cs) {
7109 1 1. isWhitespace : negated conditional → KILLED
        if (cs == null) {
7110 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7111
        }
7112
        final int sz = cs.length();
7113 3 1. isWhitespace : changed conditional boundary → KILLED
2. isWhitespace : Changed increment from 1 to -1 → KILLED
3. isWhitespace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7114 1 1. isWhitespace : negated conditional → KILLED
            if (Character.isWhitespace(cs.charAt(i)) == false) {
7115 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7116
            }
7117
        }
7118 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7119
    }
7120
7121
    /**
7122
     * <p>Checks if the CharSequence contains only lowercase characters.</p>
7123
     *
7124
     * <p>{@code null} will return {@code false}.
7125
     * An empty CharSequence (length()=0) will return {@code false}.</p>
7126
     *
7127
     * <pre>
7128
     * StringUtils.isAllLowerCase(null)   = false
7129
     * StringUtils.isAllLowerCase("")     = false
7130
     * StringUtils.isAllLowerCase("  ")   = false
7131
     * StringUtils.isAllLowerCase("abc")  = true
7132
     * StringUtils.isAllLowerCase("abC")  = false
7133
     * StringUtils.isAllLowerCase("ab c") = false
7134
     * StringUtils.isAllLowerCase("ab1c") = false
7135
     * StringUtils.isAllLowerCase("ab/c") = false
7136
     * </pre>
7137
     *
7138
     * @param cs  the CharSequence to check, may be null
7139
     * @return {@code true} if only contains lowercase characters, and is non-null
7140
     * @since 2.5
7141
     * @since 3.0 Changed signature from isAllLowerCase(String) to isAllLowerCase(CharSequence)
7142
     */
7143
    public static boolean isAllLowerCase(final CharSequence cs) {
7144 2 1. isAllLowerCase : negated conditional → KILLED
2. isAllLowerCase : negated conditional → KILLED
        if (cs == null || isEmpty(cs)) {
7145 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7146
        }
7147
        final int sz = cs.length();
7148 3 1. isAllLowerCase : changed conditional boundary → KILLED
2. isAllLowerCase : Changed increment from 1 to -1 → KILLED
3. isAllLowerCase : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7149 1 1. isAllLowerCase : negated conditional → KILLED
            if (Character.isLowerCase(cs.charAt(i)) == false) {
7150 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7151
            }
7152
        }
7153 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7154
    }
7155
7156
    /**
7157
     * <p>Checks if the CharSequence contains only uppercase characters.</p>
7158
     *
7159
     * <p>{@code null} will return {@code false}.
7160
     * An empty String (length()=0) will return {@code false}.</p>
7161
     *
7162
     * <pre>
7163
     * StringUtils.isAllUpperCase(null)   = false
7164
     * StringUtils.isAllUpperCase("")     = false
7165
     * StringUtils.isAllUpperCase("  ")   = false
7166
     * StringUtils.isAllUpperCase("ABC")  = true
7167
     * StringUtils.isAllUpperCase("aBC")  = false
7168
     * StringUtils.isAllUpperCase("A C")  = false
7169
     * StringUtils.isAllUpperCase("A1C")  = false
7170
     * StringUtils.isAllUpperCase("A/C")  = false
7171
     * </pre>
7172
     *
7173
     * @param cs the CharSequence to check, may be null
7174
     * @return {@code true} if only contains uppercase characters, and is non-null
7175
     * @since 2.5
7176
     * @since 3.0 Changed signature from isAllUpperCase(String) to isAllUpperCase(CharSequence)
7177
     */
7178
    public static boolean isAllUpperCase(final CharSequence cs) {
7179 2 1. isAllUpperCase : negated conditional → KILLED
2. isAllUpperCase : negated conditional → KILLED
        if (cs == null || isEmpty(cs)) {
7180 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7181
        }
7182
        final int sz = cs.length();
7183 3 1. isAllUpperCase : changed conditional boundary → KILLED
2. isAllUpperCase : Changed increment from 1 to -1 → KILLED
3. isAllUpperCase : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7184 1 1. isAllUpperCase : negated conditional → KILLED
            if (Character.isUpperCase(cs.charAt(i)) == false) {
7185 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7186
            }
7187
        }
7188 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7189
    }
7190
7191
    // Defaults
7192
    //-----------------------------------------------------------------------
7193
    /**
7194
     * <p>Returns either the passed in String,
7195
     * or if the String is {@code null}, an empty String ("").</p>
7196
     *
7197
     * <pre>
7198
     * StringUtils.defaultString(null)  = ""
7199
     * StringUtils.defaultString("")    = ""
7200
     * StringUtils.defaultString("bat") = "bat"
7201
     * </pre>
7202
     *
7203
     * @see ObjectUtils#toString(Object)
7204
     * @see String#valueOf(Object)
7205
     * @param str  the String to check, may be null
7206
     * @return the passed in String, or the empty String if it
7207
     *  was {@code null}
7208
     */
7209
    public static String defaultString(final String str) {
7210 2 1. defaultString : negated conditional → KILLED
2. defaultString : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : str;
7211
    }
7212
7213
    /**
7214
     * <p>Returns either the passed in String, or if the String is
7215
     * {@code null}, the value of {@code defaultStr}.</p>
7216
     *
7217
     * <pre>
7218
     * StringUtils.defaultString(null, "NULL")  = "NULL"
7219
     * StringUtils.defaultString("", "NULL")    = ""
7220
     * StringUtils.defaultString("bat", "NULL") = "bat"
7221
     * </pre>
7222
     *
7223
     * @see ObjectUtils#toString(Object,String)
7224
     * @see String#valueOf(Object)
7225
     * @param str  the String to check, may be null
7226
     * @param defaultStr  the default String to return
7227
     *  if the input is {@code null}, may be null
7228
     * @return the passed in String, or the default if it was {@code null}
7229
     */
7230
    public static String defaultString(final String str, final String defaultStr) {
7231 2 1. defaultString : negated conditional → KILLED
2. defaultString : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? defaultStr : str;
7232
    }
7233
7234
    /**
7235
     * <p>Returns either the passed in CharSequence, or if the CharSequence is
7236
     * whitespace, empty ("") or {@code null}, the value of {@code defaultStr}.</p>
7237
     * 
7238
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
7239
     *
7240
     * <pre>
7241
     * StringUtils.defaultIfBlank(null, "NULL")  = "NULL"
7242
     * StringUtils.defaultIfBlank("", "NULL")    = "NULL"
7243
     * StringUtils.defaultIfBlank(" ", "NULL")   = "NULL"
7244
     * StringUtils.defaultIfBlank("bat", "NULL") = "bat"
7245
     * StringUtils.defaultIfBlank("", null)      = null
7246
     * </pre>
7247
     * @param <T> the specific kind of CharSequence
7248
     * @param str the CharSequence to check, may be null
7249
     * @param defaultStr  the default CharSequence to return
7250
     *  if the input is whitespace, empty ("") or {@code null}, may be null
7251
     * @return the passed in CharSequence, or the default
7252
     * @see StringUtils#defaultString(String, String)
7253
     */
7254
    public static <T extends CharSequence> T defaultIfBlank(final T str, final T defaultStr) {
7255 2 1. defaultIfBlank : negated conditional → KILLED
2. defaultIfBlank : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfBlank to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isBlank(str) ? defaultStr : str;
7256
    }
7257
7258
    /**
7259
     * <p>Returns either the passed in CharSequence, or if the CharSequence is
7260
     * empty or {@code null}, the value of {@code defaultStr}.</p>
7261
     *
7262
     * <pre>
7263
     * StringUtils.defaultIfEmpty(null, "NULL")  = "NULL"
7264
     * StringUtils.defaultIfEmpty("", "NULL")    = "NULL"
7265
     * StringUtils.defaultIfEmpty(" ", "NULL")   = " "
7266
     * StringUtils.defaultIfEmpty("bat", "NULL") = "bat"
7267
     * StringUtils.defaultIfEmpty("", null)      = null
7268
     * </pre>
7269
     * @param <T> the specific kind of CharSequence
7270
     * @param str  the CharSequence to check, may be null
7271
     * @param defaultStr  the default CharSequence to return
7272
     *  if the input is empty ("") or {@code null}, may be null
7273
     * @return the passed in CharSequence, or the default
7274
     * @see StringUtils#defaultString(String, String)
7275
     */
7276
    public static <T extends CharSequence> T defaultIfEmpty(final T str, final T defaultStr) {
7277 2 1. defaultIfEmpty : negated conditional → KILLED
2. defaultIfEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isEmpty(str) ? defaultStr : str;
7278
    }
7279
7280
    // Rotating (circular shift)
7281
    //-----------------------------------------------------------------------
7282
    /**
7283
     * <p>Rotate (circular shift) a String of {@code shift} characters.</p>
7284
     * <ul>
7285
     *  <li>If {@code shift > 0}, right circular shift (ex : ABCDEF =&gt; FABCDE)</li>
7286
     *  <li>If {@code shift < 0}, left circular shift (ex : ABCDEF =&gt; BCDEFA)</li>
7287
     * </ul>
7288
     *
7289
     * <pre>
7290
     * StringUtils.rotate(null, *)        = null
7291
     * StringUtils.rotate("", *)          = ""
7292
     * StringUtils.rotate("abcdefg", 0)   = "abcdefg"
7293
     * StringUtils.rotate("abcdefg", 2)   = "fgabcde"
7294
     * StringUtils.rotate("abcdefg", -2)  = "cdefgab"
7295
     * StringUtils.rotate("abcdefg", 7)   = "abcdefg"
7296
     * StringUtils.rotate("abcdefg", -7)  = "abcdefg"
7297
     * StringUtils.rotate("abcdefg", 9)   = "fgabcde"
7298
     * StringUtils.rotate("abcdefg", -9)  = "cdefgab"
7299
     * </pre>
7300
     *
7301
     * @param str  the String to rotate, may be null
7302
     * @param shift  number of time to shift (positive : right shift, negative : left shift)
7303
     * @return the rotated String,
7304
     *          or the original String if {@code shift == 0},
7305
     *          or {@code null} if null String input
7306
     * @since 3.5
7307
     */
7308
    public static String rotate(final String str, final int shift) {
7309 1 1. rotate : negated conditional → KILLED
        if (str == null) {
7310 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7311
        }
7312
7313
        final int strLen = str.length();
7314 4 1. rotate : Replaced integer modulus with multiplication → SURVIVED
2. rotate : negated conditional → KILLED
3. rotate : negated conditional → KILLED
4. rotate : negated conditional → KILLED
        if (shift == 0 || strLen == 0 || shift % strLen == 0) {
7315 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7316
        }
7317
7318
        final StringBuilder builder = new StringBuilder(strLen);
7319 2 1. rotate : removed negation → KILLED
2. rotate : Replaced integer modulus with multiplication → KILLED
        final int offset = - (shift % strLen);
7320
        builder.append(substring(str, offset));
7321
        builder.append(substring(str, 0, offset));
7322 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
7323
    }
7324
7325
    // Reversing
7326
    //-----------------------------------------------------------------------
7327
    /**
7328
     * <p>Reverses a String as per {@link StringBuilder#reverse()}.</p>
7329
     *
7330
     * <p>A {@code null} String returns {@code null}.</p>
7331
     *
7332
     * <pre>
7333
     * StringUtils.reverse(null)  = null
7334
     * StringUtils.reverse("")    = ""
7335
     * StringUtils.reverse("bat") = "tab"
7336
     * </pre>
7337
     *
7338
     * @param str  the String to reverse, may be null
7339
     * @return the reversed String, {@code null} if null String input
7340
     */
7341
    public static String reverse(final String str) {
7342 1 1. reverse : negated conditional → KILLED
        if (str == null) {
7343 1 1. reverse : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7344
        }
7345 1 1. reverse : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new StringBuilder(str).reverse().toString();
7346
    }
7347
7348
    /**
7349
     * <p>Reverses a String that is delimited by a specific character.</p>
7350
     *
7351
     * <p>The Strings between the delimiters are not reversed.
7352
     * Thus java.lang.String becomes String.lang.java (if the delimiter
7353
     * is {@code '.'}).</p>
7354
     *
7355
     * <pre>
7356
     * StringUtils.reverseDelimited(null, *)      = null
7357
     * StringUtils.reverseDelimited("", *)        = ""
7358
     * StringUtils.reverseDelimited("a.b.c", 'x') = "a.b.c"
7359
     * StringUtils.reverseDelimited("a.b.c", ".") = "c.b.a"
7360
     * </pre>
7361
     *
7362
     * @param str  the String to reverse, may be null
7363
     * @param separatorChar  the separator character to use
7364
     * @return the reversed String, {@code null} if null String input
7365
     * @since 2.0
7366
     */
7367
    public static String reverseDelimited(final String str, final char separatorChar) {
7368 1 1. reverseDelimited : negated conditional → KILLED
        if (str == null) {
7369 1 1. reverseDelimited : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7370
        }
7371
        // could implement manually, but simple way is to reuse other,
7372
        // probably slower, methods.
7373
        final String[] strs = split(str, separatorChar);
7374 1 1. reverseDelimited : removed call to org/apache/commons/lang3/ArrayUtils::reverse → KILLED
        ArrayUtils.reverse(strs);
7375 1 1. reverseDelimited : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(strs, separatorChar);
7376
    }
7377
7378
    // Abbreviating
7379
    //-----------------------------------------------------------------------
7380
    /**
7381
     * <p>Abbreviates a String using ellipses. This will turn
7382
     * "Now is the time for all good men" into "Now is the time for..."</p>
7383
     *
7384
     * <p>Specifically:</p>
7385
     * <ul>
7386
     *   <li>If the number of characters in {@code str} is less than or equal to 
7387
     *       {@code maxWidth}, return {@code str}.</li>
7388
     *   <li>Else abbreviate it to {@code (substring(str, 0, max-3) + "...")}.</li>
7389
     *   <li>If {@code maxWidth} is less than {@code 4}, throw an
7390
     *       {@code IllegalArgumentException}.</li>
7391
     *   <li>In no case will it return a String of length greater than
7392
     *       {@code maxWidth}.</li>
7393
     * </ul>
7394
     *
7395
     * <pre>
7396
     * StringUtils.abbreviate(null, *)      = null
7397
     * StringUtils.abbreviate("", 4)        = ""
7398
     * StringUtils.abbreviate("abcdefg", 6) = "abc..."
7399
     * StringUtils.abbreviate("abcdefg", 7) = "abcdefg"
7400
     * StringUtils.abbreviate("abcdefg", 8) = "abcdefg"
7401
     * StringUtils.abbreviate("abcdefg", 4) = "a..."
7402
     * StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException
7403
     * </pre>
7404
     *
7405
     * @param str  the String to check, may be null
7406
     * @param maxWidth  maximum length of result String, must be at least 4
7407
     * @return abbreviated String, {@code null} if null String input
7408
     * @throws IllegalArgumentException if the width is too small
7409
     * @since 2.0
7410
     */
7411
    public static String abbreviate(final String str, final int maxWidth) {
7412
        final String defaultAbbrevMarker = "...";
7413 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, defaultAbbrevMarker, 0, maxWidth);
7414
    }
7415
7416
    /**
7417
     * <p>Abbreviates a String using ellipses. This will turn
7418
     * "Now is the time for all good men" into "...is the time for..."</p>
7419
     *
7420
     * <p>Works like {@code abbreviate(String, int)}, but allows you to specify
7421
     * a "left edge" offset.  Note that this left edge is not necessarily going to
7422
     * be the leftmost character in the result, or the first character following the
7423
     * ellipses, but it will appear somewhere in the result.
7424
     *
7425
     * <p>In no case will it return a String of length greater than
7426
     * {@code maxWidth}.</p>
7427
     *
7428
     * <pre>
7429
     * StringUtils.abbreviate(null, *, *)                = null
7430
     * StringUtils.abbreviate("", 0, 4)                  = ""
7431
     * StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg..."
7432
     * StringUtils.abbreviate("abcdefghijklmno", 0, 10)  = "abcdefg..."
7433
     * StringUtils.abbreviate("abcdefghijklmno", 1, 10)  = "abcdefg..."
7434
     * StringUtils.abbreviate("abcdefghijklmno", 4, 10)  = "abcdefg..."
7435
     * StringUtils.abbreviate("abcdefghijklmno", 5, 10)  = "...fghi..."
7436
     * StringUtils.abbreviate("abcdefghijklmno", 6, 10)  = "...ghij..."
7437
     * StringUtils.abbreviate("abcdefghijklmno", 8, 10)  = "...ijklmno"
7438
     * StringUtils.abbreviate("abcdefghijklmno", 10, 10) = "...ijklmno"
7439
     * StringUtils.abbreviate("abcdefghijklmno", 12, 10) = "...ijklmno"
7440
     * StringUtils.abbreviate("abcdefghij", 0, 3)        = IllegalArgumentException
7441
     * StringUtils.abbreviate("abcdefghij", 5, 6)        = IllegalArgumentException
7442
     * </pre>
7443
     *
7444
     * @param str  the String to check, may be null
7445
     * @param offset  left edge of source String
7446
     * @param maxWidth  maximum length of result String, must be at least 4
7447
     * @return abbreviated String, {@code null} if null String input
7448
     * @throws IllegalArgumentException if the width is too small
7449
     * @since 2.0
7450
     */
7451
    public static String abbreviate(final String str, final int offset, final int maxWidth) {
7452
        final String defaultAbbrevMarker = "...";
7453 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, defaultAbbrevMarker, offset, maxWidth);
7454
    }
7455
7456
    /**
7457
     * <p>Abbreviates a String using another given String as replacement marker. This will turn
7458
     * "Now is the time for all good men" into "Now is the time for..." if "..." was defined
7459
     * as the replacement marker.</p>
7460
     *
7461
     * <p>Specifically:</p>
7462
     * <ul>
7463
     *   <li>If the number of characters in {@code str} is less than or equal to 
7464
     *       {@code maxWidth}, return {@code str}.</li>
7465
     *   <li>Else abbreviate it to {@code (substring(str, 0, max-abbrevMarker.length) + abbrevMarker)}.</li>
7466
     *   <li>If {@code maxWidth} is less than {@code abbrevMarker.length + 1}, throw an
7467
     *       {@code IllegalArgumentException}.</li>
7468
     *   <li>In no case will it return a String of length greater than
7469
     *       {@code maxWidth}.</li>
7470
     * </ul>
7471
     *
7472
     * <pre>
7473
     * StringUtils.abbreviate(null, "...", *)      = null
7474
     * StringUtils.abbreviate("abcdefg", null, *)  = "abcdefg"
7475
     * StringUtils.abbreviate("", "...", 4)        = ""
7476
     * StringUtils.abbreviate("abcdefg", ".", 5)   = "abcd."
7477
     * StringUtils.abbreviate("abcdefg", ".", 7)   = "abcdefg"
7478
     * StringUtils.abbreviate("abcdefg", ".", 8)   = "abcdefg"
7479
     * StringUtils.abbreviate("abcdefg", "..", 4)  = "ab.."
7480
     * StringUtils.abbreviate("abcdefg", "..", 3)  = "a.."
7481
     * StringUtils.abbreviate("abcdefg", "..", 2)  = IllegalArgumentException
7482
     * StringUtils.abbreviate("abcdefg", "...", 3) = IllegalArgumentException
7483
     * </pre>
7484
     *
7485
     * @param str  the String to check, may be null
7486
     * @param abbrevMarker  the String used as replacement marker
7487
     * @param maxWidth  maximum length of result String, must be at least {@code abbrevMarker.length + 1}
7488
     * @return abbreviated String, {@code null} if null String input
7489
     * @throws IllegalArgumentException if the width is too small
7490
     * @since 3.5
7491
     */
7492
    public static String abbreviate(final String str, final String abbrevMarker, final int maxWidth) {
7493 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, abbrevMarker, 0, maxWidth);
7494
    }
7495
7496
    /**
7497
     * <p>Abbreviates a String using a given replacement marker. This will turn
7498
     * "Now is the time for all good men" into "...is the time for..." if "..." was defined
7499
     * as the replacement marker.</p>
7500
     *
7501
     * <p>Works like {@code abbreviate(String, String, int)}, but allows you to specify
7502
     * a "left edge" offset.  Note that this left edge is not necessarily going to
7503
     * be the leftmost character in the result, or the first character following the
7504
     * replacement marker, but it will appear somewhere in the result.
7505
     *
7506
     * <p>In no case will it return a String of length greater than {@code maxWidth}.</p>
7507
     *
7508
     * <pre>
7509
     * StringUtils.abbreviate(null, null, *, *)                 = null
7510
     * StringUtils.abbreviate("abcdefghijklmno", null, *, *)    = "abcdefghijklmno"
7511
     * StringUtils.abbreviate("", "...", 0, 4)                  = ""
7512
     * StringUtils.abbreviate("abcdefghijklmno", "---", -1, 10) = "abcdefg---"
7513
     * StringUtils.abbreviate("abcdefghijklmno", ",", 0, 10)    = "abcdefghi,"
7514
     * StringUtils.abbreviate("abcdefghijklmno", ",", 1, 10)    = "abcdefghi,"
7515
     * StringUtils.abbreviate("abcdefghijklmno", ",", 2, 10)    = "abcdefghi,"
7516
     * StringUtils.abbreviate("abcdefghijklmno", "::", 4, 10)   = "::efghij::"
7517
     * StringUtils.abbreviate("abcdefghijklmno", "...", 6, 10)  = "...ghij..."
7518
     * StringUtils.abbreviate("abcdefghijklmno", "*", 9, 10)    = "*ghijklmno"
7519
     * StringUtils.abbreviate("abcdefghijklmno", "'", 10, 10)   = "'ghijklmno"
7520
     * StringUtils.abbreviate("abcdefghijklmno", "!", 12, 10)   = "!ghijklmno"
7521
     * StringUtils.abbreviate("abcdefghij", "abra", 0, 4)       = IllegalArgumentException
7522
     * StringUtils.abbreviate("abcdefghij", "...", 5, 6)        = IllegalArgumentException
7523
     * </pre>
7524
     *
7525
     * @param str  the String to check, may be null
7526
     * @param abbrevMarker  the String used as replacement marker
7527
     * @param offset  left edge of source String
7528
     * @param maxWidth  maximum length of result String, must be at least 4
7529
     * @return abbreviated String, {@code null} if null String input
7530
     * @throws IllegalArgumentException if the width is too small
7531
     * @since 3.5
7532
     */
7533
    public static String abbreviate(final String str, final String abbrevMarker, int offset, final int maxWidth) {
7534 2 1. abbreviate : negated conditional → KILLED
2. abbreviate : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(abbrevMarker)) {
7535 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7536
        }
7537
7538
        final int abbrevMarkerLength = abbrevMarker.length();
7539 1 1. abbreviate : Replaced integer addition with subtraction → KILLED
        final int minAbbrevWidth = abbrevMarkerLength + 1;
7540 2 1. abbreviate : Replaced integer addition with subtraction → SURVIVED
2. abbreviate : Replaced integer addition with subtraction → SURVIVED
        final int minAbbrevWidthOffset = abbrevMarkerLength + abbrevMarkerLength + 1;
7541
7542 2 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : negated conditional → KILLED
        if (maxWidth < minAbbrevWidth) {
7543
            throw new IllegalArgumentException(String.format("Minimum abbreviation width is %d", minAbbrevWidth));
7544
        }
7545 2 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : negated conditional → KILLED
        if (str.length() <= maxWidth) {
7546 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7547
        }
7548 2 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : negated conditional → KILLED
        if (offset > str.length()) {
7549
            offset = str.length();
7550
        }
7551 4 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : Replaced integer subtraction with addition → SURVIVED
3. abbreviate : Replaced integer subtraction with addition → KILLED
4. abbreviate : negated conditional → KILLED
        if (str.length() - offset < maxWidth - abbrevMarkerLength) {
7552 2 1. abbreviate : Replaced integer subtraction with addition → SURVIVED
2. abbreviate : Replaced integer subtraction with addition → KILLED
            offset = str.length() - (maxWidth - abbrevMarkerLength);
7553
        }
7554 3 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : Replaced integer addition with subtraction → KILLED
3. abbreviate : negated conditional → KILLED
        if (offset <= abbrevMarkerLength+1) {
7555 2 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, maxWidth - abbrevMarkerLength) + abbrevMarker;
7556
        }
7557 2 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : negated conditional → KILLED
        if (maxWidth < minAbbrevWidthOffset) {
7558
            throw new IllegalArgumentException(String.format("Minimum abbreviation width with offset is %d", minAbbrevWidthOffset));
7559
        }
7560 4 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : Replaced integer addition with subtraction → SURVIVED
3. abbreviate : Replaced integer subtraction with addition → KILLED
4. abbreviate : negated conditional → KILLED
        if (offset + maxWidth - abbrevMarkerLength < str.length()) {
7561 2 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return abbrevMarker + abbreviate(str.substring(offset), abbrevMarker, maxWidth - abbrevMarkerLength);
7562
        }
7563 3 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : Replaced integer subtraction with addition → KILLED
3. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbrevMarker + str.substring(str.length() - (maxWidth - abbrevMarkerLength));
7564
    }
7565
7566
    /**
7567
     * <p>Abbreviates a String to the length passed, replacing the middle characters with the supplied
7568
     * replacement String.</p>
7569
     *
7570
     * <p>This abbreviation only occurs if the following criteria is met:</p>
7571
     * <ul>
7572
     * <li>Neither the String for abbreviation nor the replacement String are null or empty </li>
7573
     * <li>The length to truncate to is less than the length of the supplied String</li>
7574
     * <li>The length to truncate to is greater than 0</li>
7575
     * <li>The abbreviated String will have enough room for the length supplied replacement String
7576
     * and the first and last characters of the supplied String for abbreviation</li>
7577
     * </ul>
7578
     * <p>Otherwise, the returned String will be the same as the supplied String for abbreviation.
7579
     * </p>
7580
     *
7581
     * <pre>
7582
     * StringUtils.abbreviateMiddle(null, null, 0)      = null
7583
     * StringUtils.abbreviateMiddle("abc", null, 0)      = "abc"
7584
     * StringUtils.abbreviateMiddle("abc", ".", 0)      = "abc"
7585
     * StringUtils.abbreviateMiddle("abc", ".", 3)      = "abc"
7586
     * StringUtils.abbreviateMiddle("abcdef", ".", 4)     = "ab.f"
7587
     * </pre>
7588
     *
7589
     * @param str  the String to abbreviate, may be null
7590
     * @param middle the String to replace the middle characters with, may be null
7591
     * @param length the length to abbreviate {@code str} to.
7592
     * @return the abbreviated String if the above criteria is met, or the original String supplied for abbreviation.
7593
     * @since 2.5
7594
     */
7595
    public static String abbreviateMiddle(final String str, final String middle, final int length) {
7596 2 1. abbreviateMiddle : negated conditional → KILLED
2. abbreviateMiddle : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(middle)) {
7597 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7598
        }
7599
7600 5 1. abbreviateMiddle : changed conditional boundary → KILLED
2. abbreviateMiddle : changed conditional boundary → KILLED
3. abbreviateMiddle : Replaced integer addition with subtraction → KILLED
4. abbreviateMiddle : negated conditional → KILLED
5. abbreviateMiddle : negated conditional → KILLED
        if (length >= str.length() || length < middle.length()+2) {
7601 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7602
        }
7603
7604 1 1. abbreviateMiddle : Replaced integer subtraction with addition → KILLED
        final int targetSting = length-middle.length();
7605 3 1. abbreviateMiddle : Replaced integer division with multiplication → KILLED
2. abbreviateMiddle : Replaced integer modulus with multiplication → KILLED
3. abbreviateMiddle : Replaced integer addition with subtraction → KILLED
        final int startOffset = targetSting/2+targetSting%2;
7606 2 1. abbreviateMiddle : Replaced integer division with multiplication → KILLED
2. abbreviateMiddle : Replaced integer subtraction with addition → KILLED
        final int endOffset = str.length()-targetSting/2;
7607
7608
        final StringBuilder builder = new StringBuilder(length);
7609
        builder.append(str.substring(0,startOffset));
7610
        builder.append(middle);
7611
        builder.append(str.substring(endOffset));
7612
7613 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
7614
    }
7615
7616
    // Difference
7617
    //-----------------------------------------------------------------------
7618
    /**
7619
     * <p>Compares two Strings, and returns the portion where they differ.
7620
     * More precisely, return the remainder of the second String,
7621
     * starting from where it's different from the first. This means that
7622
     * the difference between "abc" and "ab" is the empty String and not "c". </p>
7623
     *
7624
     * <p>For example,
7625
     * {@code difference("i am a machine", "i am a robot") -> "robot"}.</p>
7626
     *
7627
     * <pre>
7628
     * StringUtils.difference(null, null) = null
7629
     * StringUtils.difference("", "") = ""
7630
     * StringUtils.difference("", "abc") = "abc"
7631
     * StringUtils.difference("abc", "") = ""
7632
     * StringUtils.difference("abc", "abc") = ""
7633
     * StringUtils.difference("abc", "ab") = ""
7634
     * StringUtils.difference("ab", "abxyz") = "xyz"
7635
     * StringUtils.difference("abcde", "abxyz") = "xyz"
7636
     * StringUtils.difference("abcde", "xyz") = "xyz"
7637
     * </pre>
7638
     *
7639
     * @param str1  the first String, may be null
7640
     * @param str2  the second String, may be null
7641
     * @return the portion of str2 where it differs from str1; returns the
7642
     * empty String if they are equal
7643
     * @see #indexOfDifference(CharSequence,CharSequence)
7644
     * @since 2.0
7645
     */
7646
    public static String difference(final String str1, final String str2) {
7647 1 1. difference : negated conditional → KILLED
        if (str1 == null) {
7648 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str2;
7649
        }
7650 1 1. difference : negated conditional → KILLED
        if (str2 == null) {
7651 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str1;
7652
        }
7653
        final int at = indexOfDifference(str1, str2);
7654 1 1. difference : negated conditional → KILLED
        if (at == INDEX_NOT_FOUND) {
7655 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7656
        }
7657 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str2.substring(at);
7658
    }
7659
7660
    /**
7661
     * <p>Compares two CharSequences, and returns the index at which the
7662
     * CharSequences begin to differ.</p>
7663
     *
7664
     * <p>For example,
7665
     * {@code indexOfDifference("i am a machine", "i am a robot") -> 7}</p>
7666
     *
7667
     * <pre>
7668
     * StringUtils.indexOfDifference(null, null) = -1
7669
     * StringUtils.indexOfDifference("", "") = -1
7670
     * StringUtils.indexOfDifference("", "abc") = 0
7671
     * StringUtils.indexOfDifference("abc", "") = 0
7672
     * StringUtils.indexOfDifference("abc", "abc") = -1
7673
     * StringUtils.indexOfDifference("ab", "abxyz") = 2
7674
     * StringUtils.indexOfDifference("abcde", "abxyz") = 2
7675
     * StringUtils.indexOfDifference("abcde", "xyz") = 0
7676
     * </pre>
7677
     *
7678
     * @param cs1  the first CharSequence, may be null
7679
     * @param cs2  the second CharSequence, may be null
7680
     * @return the index where cs1 and cs2 begin to differ; -1 if they are equal
7681
     * @since 2.0
7682
     * @since 3.0 Changed signature from indexOfDifference(String, String) to
7683
     * indexOfDifference(CharSequence, CharSequence)
7684
     */
7685
    public static int indexOfDifference(final CharSequence cs1, final CharSequence cs2) {
7686 1 1. indexOfDifference : negated conditional → KILLED
        if (cs1 == cs2) {
7687 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7688
        }
7689 2 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
        if (cs1 == null || cs2 == null) {
7690 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
7691
        }
7692
        int i;
7693 5 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : changed conditional boundary → KILLED
3. indexOfDifference : Changed increment from 1 to -1 → KILLED
4. indexOfDifference : negated conditional → KILLED
5. indexOfDifference : negated conditional → KILLED
        for (i = 0; i < cs1.length() && i < cs2.length(); ++i) {
7694 1 1. indexOfDifference : negated conditional → KILLED
            if (cs1.charAt(i) != cs2.charAt(i)) {
7695
                break;
7696
            }
7697
        }
7698 4 1. indexOfDifference : changed conditional boundary → SURVIVED
2. indexOfDifference : changed conditional boundary → SURVIVED
3. indexOfDifference : negated conditional → KILLED
4. indexOfDifference : negated conditional → KILLED
        if (i < cs2.length() || i < cs1.length()) {
7699 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return i;
7700
        }
7701 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
        return INDEX_NOT_FOUND;
7702
    }
7703
7704
    /**
7705
     * <p>Compares all CharSequences in an array and returns the index at which the
7706
     * CharSequences begin to differ.</p>
7707
     *
7708
     * <p>For example,
7709
     * <code>indexOfDifference(new String[] {"i am a machine", "i am a robot"}) -&gt; 7</code></p>
7710
     *
7711
     * <pre>
7712
     * StringUtils.indexOfDifference(null) = -1
7713
     * StringUtils.indexOfDifference(new String[] {}) = -1
7714
     * StringUtils.indexOfDifference(new String[] {"abc"}) = -1
7715
     * StringUtils.indexOfDifference(new String[] {null, null}) = -1
7716
     * StringUtils.indexOfDifference(new String[] {"", ""}) = -1
7717
     * StringUtils.indexOfDifference(new String[] {"", null}) = 0
7718
     * StringUtils.indexOfDifference(new String[] {"abc", null, null}) = 0
7719
     * StringUtils.indexOfDifference(new String[] {null, null, "abc"}) = 0
7720
     * StringUtils.indexOfDifference(new String[] {"", "abc"}) = 0
7721
     * StringUtils.indexOfDifference(new String[] {"abc", ""}) = 0
7722
     * StringUtils.indexOfDifference(new String[] {"abc", "abc"}) = -1
7723
     * StringUtils.indexOfDifference(new String[] {"abc", "a"}) = 1
7724
     * StringUtils.indexOfDifference(new String[] {"ab", "abxyz"}) = 2
7725
     * StringUtils.indexOfDifference(new String[] {"abcde", "abxyz"}) = 2
7726
     * StringUtils.indexOfDifference(new String[] {"abcde", "xyz"}) = 0
7727
     * StringUtils.indexOfDifference(new String[] {"xyz", "abcde"}) = 0
7728
     * StringUtils.indexOfDifference(new String[] {"i am a machine", "i am a robot"}) = 7
7729
     * </pre>
7730
     *
7731
     * @param css  array of CharSequences, entries may be null
7732
     * @return the index where the strings begin to differ; -1 if they are all equal
7733
     * @since 2.4
7734
     * @since 3.0 Changed signature from indexOfDifference(String...) to indexOfDifference(CharSequence...)
7735
     */
7736
    public static int indexOfDifference(final CharSequence... css) {
7737 3 1. indexOfDifference : changed conditional boundary → SURVIVED
2. indexOfDifference : negated conditional → KILLED
3. indexOfDifference : negated conditional → KILLED
        if (css == null || css.length <= 1) {
7738 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7739
        }
7740
        boolean anyStringNull = false;
7741
        boolean allStringsNull = true;
7742
        final int arrayLen = css.length;
7743
        int shortestStrLen = Integer.MAX_VALUE;
7744
        int longestStrLen = 0;
7745
7746
        // find the min and max string lengths; this avoids checking to make
7747
        // sure we are not exceeding the length of the string each time through
7748
        // the bottom loop.
7749 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
        for (int i = 0; i < arrayLen; i++) {
7750 1 1. indexOfDifference : negated conditional → KILLED
            if (css[i] == null) {
7751
                anyStringNull = true;
7752
                shortestStrLen = 0;
7753
            } else {
7754
                allStringsNull = false;
7755
                shortestStrLen = Math.min(css[i].length(), shortestStrLen);
7756
                longestStrLen = Math.max(css[i].length(), longestStrLen);
7757
            }
7758
        }
7759
7760
        // handle lists containing all nulls or all empty strings
7761 3 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
3. indexOfDifference : negated conditional → KILLED
        if (allStringsNull || longestStrLen == 0 && !anyStringNull) {
7762 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7763
        }
7764
7765
        // handle lists containing some nulls or some empty strings
7766 1 1. indexOfDifference : negated conditional → KILLED
        if (shortestStrLen == 0) {
7767 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
7768
        }
7769
7770
        // find the position with the first difference across all strings
7771
        int firstDiff = -1;
7772 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
        for (int stringPos = 0; stringPos < shortestStrLen; stringPos++) {
7773
            final char comparisonChar = css[0].charAt(stringPos);
7774 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
            for (int arrayPos = 1; arrayPos < arrayLen; arrayPos++) {
7775 1 1. indexOfDifference : negated conditional → KILLED
                if (css[arrayPos].charAt(stringPos) != comparisonChar) {
7776
                    firstDiff = stringPos;
7777
                    break;
7778
                }
7779
            }
7780 1 1. indexOfDifference : negated conditional → KILLED
            if (firstDiff != -1) {
7781
                break;
7782
            }
7783
        }
7784
7785 2 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
        if (firstDiff == -1 && shortestStrLen != longestStrLen) {
7786
            // we compared all of the characters up to the length of the
7787
            // shortest string and didn't find a match, but the string lengths
7788
            // vary, so return the length of the shortest string.
7789 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return shortestStrLen;
7790
        }
7791 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return firstDiff;
7792
    }
7793
7794
    /**
7795
     * <p>Compares all Strings in an array and returns the initial sequence of
7796
     * characters that is common to all of them.</p>
7797
     *
7798
     * <p>For example,
7799
     * <code>getCommonPrefix(new String[] {"i am a machine", "i am a robot"}) -&gt; "i am a "</code></p>
7800
     *
7801
     * <pre>
7802
     * StringUtils.getCommonPrefix(null) = ""
7803
     * StringUtils.getCommonPrefix(new String[] {}) = ""
7804
     * StringUtils.getCommonPrefix(new String[] {"abc"}) = "abc"
7805
     * StringUtils.getCommonPrefix(new String[] {null, null}) = ""
7806
     * StringUtils.getCommonPrefix(new String[] {"", ""}) = ""
7807
     * StringUtils.getCommonPrefix(new String[] {"", null}) = ""
7808
     * StringUtils.getCommonPrefix(new String[] {"abc", null, null}) = ""
7809
     * StringUtils.getCommonPrefix(new String[] {null, null, "abc"}) = ""
7810
     * StringUtils.getCommonPrefix(new String[] {"", "abc"}) = ""
7811
     * StringUtils.getCommonPrefix(new String[] {"abc", ""}) = ""
7812
     * StringUtils.getCommonPrefix(new String[] {"abc", "abc"}) = "abc"
7813
     * StringUtils.getCommonPrefix(new String[] {"abc", "a"}) = "a"
7814
     * StringUtils.getCommonPrefix(new String[] {"ab", "abxyz"}) = "ab"
7815
     * StringUtils.getCommonPrefix(new String[] {"abcde", "abxyz"}) = "ab"
7816
     * StringUtils.getCommonPrefix(new String[] {"abcde", "xyz"}) = ""
7817
     * StringUtils.getCommonPrefix(new String[] {"xyz", "abcde"}) = ""
7818
     * StringUtils.getCommonPrefix(new String[] {"i am a machine", "i am a robot"}) = "i am a "
7819
     * </pre>
7820
     *
7821
     * @param strs  array of String objects, entries may be null
7822
     * @return the initial sequence of characters that are common to all Strings
7823
     * in the array; empty String if the array is null, the elements are all null
7824
     * or if there is no common prefix.
7825
     * @since 2.4
7826
     */
7827
    public static String getCommonPrefix(final String... strs) {
7828 2 1. getCommonPrefix : negated conditional → KILLED
2. getCommonPrefix : negated conditional → KILLED
        if (strs == null || strs.length == 0) {
7829 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7830
        }
7831
        final int smallestIndexOfDiff = indexOfDifference(strs);
7832 1 1. getCommonPrefix : negated conditional → KILLED
        if (smallestIndexOfDiff == INDEX_NOT_FOUND) {
7833
            // all strings were identical
7834 1 1. getCommonPrefix : negated conditional → KILLED
            if (strs[0] == null) {
7835 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return EMPTY;
7836
            }
7837 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs[0];
7838 1 1. getCommonPrefix : negated conditional → KILLED
        } else if (smallestIndexOfDiff == 0) {
7839
            // there were no common initial characters
7840 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7841
        } else {
7842
            // we found a common initial character sequence
7843 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs[0].substring(0, smallestIndexOfDiff);
7844
        }
7845
    }
7846
7847
    // Misc
7848
    //-----------------------------------------------------------------------
7849
    /**
7850
     * <p>Find the Levenshtein distance between two Strings.</p>
7851
     *
7852
     * <p>This is the number of changes needed to change one String into
7853
     * another, where each change is a single character modification (deletion,
7854
     * insertion or substitution).</p>
7855
     *
7856
     * <p>The implementation uses a single-dimensional array of length s.length() + 1. See 
7857
     * <a href="http://blog.softwx.net/2014/12/optimizing-levenshtein-algorithm-in-c.html">
7858
     * http://blog.softwx.net/2014/12/optimizing-levenshtein-algorithm-in-c.html</a> for details.</p>
7859
     *
7860
     * <pre>
7861
     * StringUtils.getLevenshteinDistance(null, *)             = IllegalArgumentException
7862
     * StringUtils.getLevenshteinDistance(*, null)             = IllegalArgumentException
7863
     * StringUtils.getLevenshteinDistance("","")               = 0
7864
     * StringUtils.getLevenshteinDistance("","a")              = 1
7865
     * StringUtils.getLevenshteinDistance("aaapppp", "")       = 7
7866
     * StringUtils.getLevenshteinDistance("frog", "fog")       = 1
7867
     * StringUtils.getLevenshteinDistance("fly", "ant")        = 3
7868
     * StringUtils.getLevenshteinDistance("elephant", "hippo") = 7
7869
     * StringUtils.getLevenshteinDistance("hippo", "elephant") = 7
7870
     * StringUtils.getLevenshteinDistance("hippo", "zzzzzzzz") = 8
7871
     * StringUtils.getLevenshteinDistance("hello", "hallo")    = 1
7872
     * </pre>
7873
     *
7874
     * @param s  the first String, must not be null
7875
     * @param t  the second String, must not be null
7876
     * @return result distance
7877
     * @throws IllegalArgumentException if either String input {@code null}
7878
     * @since 3.0 Changed signature from getLevenshteinDistance(String, String) to
7879
     * getLevenshteinDistance(CharSequence, CharSequence)
7880
     */
7881
    public static int getLevenshteinDistance(CharSequence s, CharSequence t) {
7882 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (s == null || t == null) {
7883
            throw new IllegalArgumentException("Strings must not be null");
7884
        }
7885
7886
        int n = s.length();
7887
        int m = t.length();
7888
7889 1 1. getLevenshteinDistance : negated conditional → KILLED
        if (n == 0) {
7890 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return m;
7891 1 1. getLevenshteinDistance : negated conditional → KILLED
        } else if (m == 0) {
7892 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return n;
7893
        }
7894
7895 2 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
        if (n > m) {
7896
            // swap the input strings to consume less memory
7897
            final CharSequence tmp = s;
7898
            s = t;
7899
            t = tmp;
7900
            n = m;
7901
            m = t.length();
7902
        }
7903
7904 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        final int p[] = new int[n + 1];
7905
        // indexes into strings s and t
7906
        int i; // iterates through s
7907
        int j; // iterates through t
7908
        int upper_left;
7909
        int upper;
7910
7911
        char t_j; // jth character of t
7912
        int cost;
7913
7914 3 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
3. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
        for (i = 0; i <= n; i++) {
7915
            p[i] = i;
7916
        }
7917
7918 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        for (j = 1; j <= m; j++) {
7919
            upper_left = p[0];
7920 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            t_j = t.charAt(j - 1);
7921
            p[0] = j;
7922
7923 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
            for (i = 1; i <= n; i++) {
7924
                upper = p[i];
7925 2 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
                cost = s.charAt(i - 1) == t_j ? 0 : 1;
7926
                // minimum of cell to the left+1, to the top+1, diagonally left and up +cost
7927 4 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
4. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
                p[i] = Math.min(Math.min(p[i - 1] + 1, p[i] + 1), upper_left + cost);
7928
                upper_left = upper;
7929
            }
7930
        }
7931
7932 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return p[n];
7933
    }
7934
7935
    /**
7936
     * <p>Find the Levenshtein distance between two Strings if it's less than or equal to a given
7937
     * threshold.</p>
7938
     *
7939
     * <p>This is the number of changes needed to change one String into
7940
     * another, where each change is a single character modification (deletion,
7941
     * insertion or substitution).</p>
7942
     *
7943
     * <p>This implementation follows from Algorithms on Strings, Trees and Sequences by Dan Gusfield
7944
     * and Chas Emerick's implementation of the Levenshtein distance algorithm from
7945
     * <a href="http://www.merriampark.com/ld.htm">http://www.merriampark.com/ld.htm</a></p>
7946
     *
7947
     * <pre>
7948
     * StringUtils.getLevenshteinDistance(null, *, *)             = IllegalArgumentException
7949
     * StringUtils.getLevenshteinDistance(*, null, *)             = IllegalArgumentException
7950
     * StringUtils.getLevenshteinDistance(*, *, -1)               = IllegalArgumentException
7951
     * StringUtils.getLevenshteinDistance("","", 0)               = 0
7952
     * StringUtils.getLevenshteinDistance("aaapppp", "", 8)       = 7
7953
     * StringUtils.getLevenshteinDistance("aaapppp", "", 7)       = 7
7954
     * StringUtils.getLevenshteinDistance("aaapppp", "", 6))      = -1
7955
     * StringUtils.getLevenshteinDistance("elephant", "hippo", 7) = 7
7956
     * StringUtils.getLevenshteinDistance("elephant", "hippo", 6) = -1
7957
     * StringUtils.getLevenshteinDistance("hippo", "elephant", 7) = 7
7958
     * StringUtils.getLevenshteinDistance("hippo", "elephant", 6) = -1
7959
     * </pre>
7960
     *
7961
     * @param s  the first String, must not be null
7962
     * @param t  the second String, must not be null
7963
     * @param threshold the target threshold, must not be negative
7964
     * @return result distance, or {@code -1} if the distance would be greater than the threshold
7965
     * @throws IllegalArgumentException if either String input {@code null} or negative threshold
7966
     */
7967
    public static int getLevenshteinDistance(CharSequence s, CharSequence t, final int threshold) {
7968 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (s == null || t == null) {
7969
            throw new IllegalArgumentException("Strings must not be null");
7970
        }
7971 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (threshold < 0) {
7972
            throw new IllegalArgumentException("Threshold must not be negative");
7973
        }
7974
7975
        /*
7976
        This implementation only computes the distance if it's less than or equal to the
7977
        threshold value, returning -1 if it's greater.  The advantage is performance: unbounded
7978
        distance is O(nm), but a bound of k allows us to reduce it to O(km) time by only
7979
        computing a diagonal stripe of width 2k + 1 of the cost table.
7980
        It is also possible to use this to compute the unbounded Levenshtein distance by starting
7981
        the threshold at 1 and doubling each time until the distance is found; this is O(dm), where
7982
        d is the distance.
7983
7984
        One subtlety comes from needing to ignore entries on the border of our stripe
7985
        eg.
7986
        p[] = |#|#|#|*
7987
        d[] =  *|#|#|#|
7988
        We must ignore the entry to the left of the leftmost member
7989
        We must ignore the entry above the rightmost member
7990
7991
        Another subtlety comes from our stripe running off the matrix if the strings aren't
7992
        of the same size.  Since string s is always swapped to be the shorter of the two,
7993
        the stripe will always run off to the upper right instead of the lower left of the matrix.
7994
7995
        As a concrete example, suppose s is of length 5, t is of length 7, and our threshold is 1.
7996
        In this case we're going to walk a stripe of length 3.  The matrix would look like so:
7997
7998
           1 2 3 4 5
7999
        1 |#|#| | | |
8000
        2 |#|#|#| | |
8001
        3 | |#|#|#| |
8002
        4 | | |#|#|#|
8003
        5 | | | |#|#|
8004
        6 | | | | |#|
8005
        7 | | | | | |
8006
8007
        Note how the stripe leads off the table as there is no possible way to turn a string of length 5
8008
        into one of length 7 in edit distance of 1.
8009
8010
        Additionally, this implementation decreases memory usage by using two
8011
        single-dimensional arrays and swapping them back and forth instead of allocating
8012
        an entire n by m matrix.  This requires a few minor changes, such as immediately returning
8013
        when it's detected that the stripe has run off the matrix and initially filling the arrays with
8014
        large values so that entries we don't compute are ignored.
8015
8016
        See Algorithms on Strings, Trees and Sequences by Dan Gusfield for some discussion.
8017
         */
8018
8019
        int n = s.length(); // length of s
8020
        int m = t.length(); // length of t
8021
8022
        // if one string is empty, the edit distance is necessarily the length of the other
8023 1 1. getLevenshteinDistance : negated conditional → KILLED
        if (n == 0) {
8024 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
3. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return m <= threshold ? m : -1;
8025 1 1. getLevenshteinDistance : negated conditional → KILLED
        } else if (m == 0) {
8026 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
3. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return n <= threshold ? n : -1;
8027
        }
8028
        // no need to calculate the distance if the length difference is greater than the threshold
8029 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        else if (Math.abs(n - m) > threshold) {
8030 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return -1;
8031
        }
8032
8033 2 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
        if (n > m) {
8034
            // swap the two strings to consume less memory
8035
            final CharSequence tmp = s;
8036
            s = t;
8037
            t = tmp;
8038
            n = m;
8039
            m = t.length();
8040
        }
8041
8042 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        int p[] = new int[n + 1]; // 'previous' cost array, horizontally
8043 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        int d[] = new int[n + 1]; // cost array, horizontally
8044
        int _d[]; // placeholder to assist in swapping p and d
8045
8046
        // fill in starting table values
8047 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        final int boundary = Math.min(n, threshold) + 1;
8048 3 1. getLevenshteinDistance : negated conditional → SURVIVED
2. getLevenshteinDistance : changed conditional boundary → KILLED
3. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
        for (int i = 0; i < boundary; i++) {
8049
            p[i] = i;
8050
        }
8051
        // these fills ensure that the value above the rightmost entry of our
8052
        // stripe will be ignored in following loop iterations
8053 1 1. getLevenshteinDistance : removed call to java/util/Arrays::fill → SURVIVED
        Arrays.fill(p, boundary, p.length, Integer.MAX_VALUE);
8054 1 1. getLevenshteinDistance : removed call to java/util/Arrays::fill → SURVIVED
        Arrays.fill(d, Integer.MAX_VALUE);
8055
8056
        // iterates through t
8057 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        for (int j = 1; j <= m; j++) {
8058 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            final char t_j = t.charAt(j - 1); // jth character of t
8059
            d[0] = j;
8060
8061
            // compute stripe indices, constrain to array size
8062 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            final int min = Math.max(1, j - threshold);
8063 4 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : Replaced integer subtraction with addition → SURVIVED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
4. getLevenshteinDistance : negated conditional → KILLED
            final int max = j > Integer.MAX_VALUE - threshold ? n : Math.min(n, j + threshold);
8064
8065
            // the stripe may lead off of the table if s and t are of different sizes
8066 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
            if (min > max) {
8067 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
                return -1;
8068
            }
8069
8070
            // ignore entry left of leftmost
8071 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
            if (min > 1) {
8072 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
                d[min - 1] = Integer.MAX_VALUE;
8073
            }
8074
8075
            // iterates through [min, max] in s
8076 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
            for (int i = min; i <= max; i++) {
8077 2 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
                if (s.charAt(i - 1) == t_j) {
8078
                    // diagonally left and up
8079 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
                    d[i] = p[i - 1];
8080
                } else {
8081
                    // 1 + minimum of cell to the left, to the top, diagonally left and up
8082 3 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
                    d[i] = 1 + Math.min(Math.min(d[i - 1], p[i]), p[i - 1]);
8083
                }
8084
            }
8085
8086
            // copy current distance counts to 'previous row' distance counts
8087
            _d = p;
8088
            p = d;
8089
            d = _d;
8090
        }
8091
8092
        // if p[n] is greater than the threshold, there's no guarantee on it being the correct
8093
        // distance
8094 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (p[n] <= threshold) {
8095 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return p[n];
8096
        }
8097 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return -1;
8098
    }
8099
    
8100
    /**
8101
     * <p>Find the Jaro Winkler Distance which indicates the similarity score between two Strings.</p>
8102
     *
8103
     * <p>The Jaro measure is the weighted sum of percentage of matched characters from each file and transposed characters. 
8104
     * Winkler increased this measure for matching initial characters.</p>
8105
     *
8106
     * <p>This implementation is based on the Jaro Winkler similarity algorithm
8107
     * from <a href="http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance">http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance</a>.</p>
8108
     * 
8109
     * <pre>
8110
     * StringUtils.getJaroWinklerDistance(null, null)          = IllegalArgumentException
8111
     * StringUtils.getJaroWinklerDistance("","")               = 0.0
8112
     * StringUtils.getJaroWinklerDistance("","a")              = 0.0
8113
     * StringUtils.getJaroWinklerDistance("aaapppp", "")       = 0.0
8114
     * StringUtils.getJaroWinklerDistance("frog", "fog")       = 0.93
8115
     * StringUtils.getJaroWinklerDistance("fly", "ant")        = 0.0
8116
     * StringUtils.getJaroWinklerDistance("elephant", "hippo") = 0.44
8117
     * StringUtils.getJaroWinklerDistance("hippo", "elephant") = 0.44
8118
     * StringUtils.getJaroWinklerDistance("hippo", "zzzzzzzz") = 0.0
8119
     * StringUtils.getJaroWinklerDistance("hello", "hallo")    = 0.88
8120
     * StringUtils.getJaroWinklerDistance("ABC Corporation", "ABC Corp") = 0.93
8121
     * StringUtils.getJaroWinklerDistance("D N H Enterprises Inc", "D &amp; H Enterprises, Inc.") = 0.95
8122
     * StringUtils.getJaroWinklerDistance("My Gym Children's Fitness Center", "My Gym. Childrens Fitness") = 0.92
8123
     * StringUtils.getJaroWinklerDistance("PENNSYLVANIA", "PENNCISYLVNIA") = 0.88
8124
     * </pre>
8125
     *
8126
     * @param first the first String, must not be null
8127
     * @param second the second String, must not be null
8128
     * @return result distance
8129
     * @throws IllegalArgumentException if either String input {@code null}
8130
     * @since 3.3
8131
     * @deprecated as of 3.6, due to a misleading name, use {@link #getJaroWinklerSimilarity()} instead
8132
     */
8133
    @Deprecated
8134
    public static double getJaroWinklerDistance(final CharSequence first, final CharSequence second) {
8135
        final double DEFAULT_SCALING_FACTOR = 0.1;
8136
8137 2 1. getJaroWinklerDistance : negated conditional → KILLED
2. getJaroWinklerDistance : negated conditional → KILLED
        if (first == null || second == null) {
8138
            throw new IllegalArgumentException("Strings must not be null");
8139
        }
8140
8141
        final int[] mtp = matches(first, second);
8142
        final double m = mtp[0];
8143 1 1. getJaroWinklerDistance : negated conditional → KILLED
        if (m == 0) {
8144 1 1. getJaroWinklerDistance : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED
            return 0D;
8145
        }
8146 7 1. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
4. getJaroWinklerDistance : Replaced double subtraction with addition → KILLED
5. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
6. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
7. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
        final double j = ((m / first.length() + m / second.length() + (m - mtp[1]) / m)) / 3;
8147 7 1. getJaroWinklerDistance : changed conditional boundary → SURVIVED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
4. getJaroWinklerDistance : Replaced double subtraction with addition → KILLED
5. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
6. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
7. getJaroWinklerDistance : negated conditional → KILLED
        final double jw = j < 0.7D ? j : j + Math.min(DEFAULT_SCALING_FACTOR, 1D / mtp[3]) * mtp[2] * (1D - j);
8148 3 1. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED
        return Math.round(jw * 100.0D) / 100.0D;
8149
    }
8150
8151
    /**
8152
     * <p>Find the Jaro Winkler Similarity which indicates the similarity score between two Strings.</p>
8153
     *
8154
     * <p>The Jaro measure is the weighted sum of percentage of matched characters from each file and transposed characters. 
8155
     * Winkler increased this measure for matching initial characters.</p>
8156
     *
8157
     * <p>This implementation is based on the Jaro Winkler similarity algorithm
8158
     * from <a href="http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance">http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance</a>.</p>
8159
     * 
8160
     * <pre>
8161
     * StringUtils.getJaroWinklerSimilarity(null, null)          = IllegalArgumentException
8162
     * StringUtils.getJaroWinklerSimilarity("","")               = 0.0
8163
     * StringUtils.getJaroWinklerSimilarity("","a")              = 0.0
8164
     * StringUtils.getJaroWinklerSimilarity("aaapppp", "")       = 0.0
8165
     * StringUtils.getJaroWinklerSimilarity("frog", "fog")       = 0.93
8166
     * StringUtils.getJaroWinklerSimilarity("fly", "ant")        = 0.0
8167
     * StringUtils.getJaroWinklerSimilarity("elephant", "hippo") = 0.44
8168
     * StringUtils.getJaroWinklerSimilarity("hippo", "elephant") = 0.44
8169
     * StringUtils.getJaroWinklerSimilarity("hippo", "zzzzzzzz") = 0.0
8170
     * StringUtils.getJaroWinklerSimilarity("hello", "hallo")    = 0.88
8171
     * StringUtils.getJaroWinklerSimilarity("ABC Corporation", "ABC Corp") = 0.93
8172
     * StringUtils.getJaroWinklerSimilarity("D N H Enterprises Inc", "D &amp; H Enterprises, Inc.") = 0.95
8173
     * StringUtils.getJaroWinklerSimilarity("My Gym Children's Fitness Center", "My Gym. Childrens Fitness") = 0.92
8174
     * StringUtils.getJaroWinklerSimilarity("PENNSYLVANIA", "PENNCISYLVNIA") = 0.88
8175
     * </pre>
8176
     *
8177
     * @param first the first String, must not be null
8178
     * @param second the second String, must not be null
8179
     * @return result similarity
8180
     * @throws IllegalArgumentException if either String input {@code null}
8181
     * @since 3.6
8182
     */
8183
    public static double getJaroWinklerSimilarity(final CharSequence first, final CharSequence second) {
8184
        final double DEFAULT_SCALING_FACTOR = 0.1;
8185
8186 2 1. getJaroWinklerSimilarity : negated conditional → KILLED
2. getJaroWinklerSimilarity : negated conditional → KILLED
        if (first == null || second == null) {
8187
            throw new IllegalArgumentException("Strings must not be null");
8188
        }
8189
8190
        final int[] mtp = matches(first, second);
8191
        final double m = mtp[0];
8192 1 1. getJaroWinklerSimilarity : negated conditional → KILLED
        if (m == 0) {
8193 1 1. getJaroWinklerSimilarity : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED
            return 0D;
8194
        }
8195 7 1. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
4. getJaroWinklerSimilarity : Replaced double subtraction with addition → KILLED
5. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
6. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
7. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
        final double j = ((m / first.length() + m / second.length() + (m - mtp[1]) / m)) / 3;
8196 7 1. getJaroWinklerSimilarity : changed conditional boundary → SURVIVED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
4. getJaroWinklerSimilarity : Replaced double subtraction with addition → KILLED
5. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
6. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
7. getJaroWinklerSimilarity : negated conditional → KILLED
        final double jw = j < 0.7D ? j : j + Math.min(DEFAULT_SCALING_FACTOR, 1D / mtp[3]) * mtp[2] * (1D - j);
8197 3 1. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED
        return Math.round(jw * 100.0D) / 100.0D;
8198
    }
8199
8200
    private static int[] matches(final CharSequence first, final CharSequence second) {
8201
        CharSequence max, min;
8202 2 1. matches : changed conditional boundary → SURVIVED
2. matches : negated conditional → KILLED
        if (first.length() > second.length()) {
8203
            max = first;
8204
            min = second;
8205
        } else {
8206
            max = second;
8207
            min = first;
8208
        }
8209 2 1. matches : Replaced integer division with multiplication → KILLED
2. matches : Replaced integer subtraction with addition → KILLED
        final int range = Math.max(max.length() / 2 - 1, 0);
8210
        final int[] matchIndexes = new int[min.length()];
8211 1 1. matches : removed call to java/util/Arrays::fill → KILLED
        Arrays.fill(matchIndexes, -1);
8212
        final boolean[] matchFlags = new boolean[max.length()];
8213
        int matches = 0;
8214 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < min.length(); mi++) {
8215
            final char c1 = min.charAt(mi);
8216 6 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : Replaced integer subtraction with addition → KILLED
4. matches : Replaced integer addition with subtraction → KILLED
5. matches : Replaced integer addition with subtraction → KILLED
6. matches : negated conditional → KILLED
            for (int xi = Math.max(mi - range, 0), xn = Math.min(mi + range + 1, max.length()); xi < xn; xi++) {
8217 2 1. matches : negated conditional → KILLED
2. matches : negated conditional → KILLED
                if (!matchFlags[xi] && c1 == max.charAt(xi)) {
8218
                    matchIndexes[mi] = xi;
8219
                    matchFlags[xi] = true;
8220 1 1. matches : Changed increment from 1 to -1 → KILLED
                    matches++;
8221
                    break;
8222
                }
8223
            }
8224
        }
8225
        final char[] ms1 = new char[matches];
8226
        final char[] ms2 = new char[matches];
8227 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int i = 0, si = 0; i < min.length(); i++) {
8228 1 1. matches : negated conditional → KILLED
            if (matchIndexes[i] != -1) {
8229
                ms1[si] = min.charAt(i);
8230 1 1. matches : Changed increment from 1 to -1 → KILLED
                si++;
8231
            }
8232
        }
8233 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int i = 0, si = 0; i < max.length(); i++) {
8234 1 1. matches : negated conditional → KILLED
            if (matchFlags[i]) {
8235
                ms2[si] = max.charAt(i);
8236 1 1. matches : Changed increment from 1 to -1 → KILLED
                si++;
8237
            }
8238
        }
8239
        int transpositions = 0;
8240 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < ms1.length; mi++) {
8241 1 1. matches : negated conditional → KILLED
            if (ms1[mi] != ms2[mi]) {
8242 1 1. matches : Changed increment from 1 to -1 → KILLED
                transpositions++;
8243
            }
8244
        }
8245
        int prefix = 0;
8246 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < min.length(); mi++) {
8247 1 1. matches : negated conditional → KILLED
            if (first.charAt(mi) == second.charAt(mi)) {
8248 1 1. matches : Changed increment from 1 to -1 → KILLED
                prefix++;
8249
            } else {
8250
                break;
8251
            }
8252
        }
8253 2 1. matches : Replaced integer division with multiplication → KILLED
2. matches : mutated return of Object value for org/apache/commons/lang3/StringUtils::matches to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new int[] { matches, transpositions / 2, prefix, max.length() };
8254
    }
8255
8256
    /**
8257
     * <p>Find the Fuzzy Distance which indicates the similarity score between two Strings.</p>
8258
     *
8259
     * <p>This string matching algorithm is similar to the algorithms of editors such as Sublime Text,
8260
     * TextMate, Atom and others. One point is given for every matched character. Subsequent
8261
     * matches yield two bonus points. A higher score indicates a higher similarity.</p>
8262
     *
8263
     * <pre>
8264
     * StringUtils.getFuzzyDistance(null, null, null)                                    = IllegalArgumentException
8265
     * StringUtils.getFuzzyDistance("", "", Locale.ENGLISH)                              = 0
8266
     * StringUtils.getFuzzyDistance("Workshop", "b", Locale.ENGLISH)                     = 0
8267
     * StringUtils.getFuzzyDistance("Room", "o", Locale.ENGLISH)                         = 1
8268
     * StringUtils.getFuzzyDistance("Workshop", "w", Locale.ENGLISH)                     = 1
8269
     * StringUtils.getFuzzyDistance("Workshop", "ws", Locale.ENGLISH)                    = 2
8270
     * StringUtils.getFuzzyDistance("Workshop", "wo", Locale.ENGLISH)                    = 4
8271
     * StringUtils.getFuzzyDistance("Apache Software Foundation", "asf", Locale.ENGLISH) = 3
8272
     * </pre>
8273
     *
8274
     * @param term a full term that should be matched against, must not be null
8275
     * @param query the query that will be matched against a term, must not be null
8276
     * @param locale This string matching logic is case insensitive. A locale is necessary to normalize
8277
     *  both Strings to lower case.
8278
     * @return result score
8279
     * @throws IllegalArgumentException if either String input {@code null} or Locale input {@code null}
8280
     * @since 3.4
8281
     */
8282
    public static int getFuzzyDistance(final CharSequence term, final CharSequence query, final Locale locale) {
8283 2 1. getFuzzyDistance : negated conditional → KILLED
2. getFuzzyDistance : negated conditional → KILLED
        if (term == null || query == null) {
8284
            throw new IllegalArgumentException("Strings must not be null");
8285 1 1. getFuzzyDistance : negated conditional → KILLED
        } else if (locale == null) {
8286
            throw new IllegalArgumentException("Locale must not be null");
8287
        }
8288
8289
        // fuzzy logic is case insensitive. We normalize the Strings to lower
8290
        // case right from the start. Turning characters to lower case
8291
        // via Character.toLowerCase(char) is unfortunately insufficient
8292
        // as it does not accept a locale.
8293
        final String termLowerCase = term.toString().toLowerCase(locale);
8294
        final String queryLowerCase = query.toString().toLowerCase(locale);
8295
8296
        // the resulting score
8297
        int score = 0;
8298
8299
        // the position in the term which will be scanned next for potential
8300
        // query character matches
8301
        int termIndex = 0;
8302
8303
        // index of the previously matched character in the term
8304
        int previousMatchingCharacterIndex = Integer.MIN_VALUE;
8305
8306 3 1. getFuzzyDistance : changed conditional boundary → KILLED
2. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
3. getFuzzyDistance : negated conditional → KILLED
        for (int queryIndex = 0; queryIndex < queryLowerCase.length(); queryIndex++) {
8307
            final char queryChar = queryLowerCase.charAt(queryIndex);
8308
8309
            boolean termCharacterMatchFound = false;
8310 4 1. getFuzzyDistance : changed conditional boundary → KILLED
2. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
3. getFuzzyDistance : negated conditional → KILLED
4. getFuzzyDistance : negated conditional → KILLED
            for (; termIndex < termLowerCase.length() && !termCharacterMatchFound; termIndex++) {
8311
                final char termChar = termLowerCase.charAt(termIndex);
8312
8313 1 1. getFuzzyDistance : negated conditional → KILLED
                if (queryChar == termChar) {
8314
                    // simple character matches result in one point
8315 1 1. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
                    score++;
8316
8317
                    // subsequent character matches further improve
8318
                    // the score.
8319 2 1. getFuzzyDistance : Replaced integer addition with subtraction → KILLED
2. getFuzzyDistance : negated conditional → KILLED
                    if (previousMatchingCharacterIndex + 1 == termIndex) {
8320 1 1. getFuzzyDistance : Changed increment from 2 to -2 → KILLED
                        score += 2;
8321
                    }
8322
8323
                    previousMatchingCharacterIndex = termIndex;
8324
8325
                    // we can leave the nested loop. Every character in the
8326
                    // query can match at most one character in the term.
8327
                    termCharacterMatchFound = true;
8328
                }
8329
            }
8330
        }
8331
8332 1 1. getFuzzyDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return score;
8333
    }
8334
8335
    // startsWith
8336
    //-----------------------------------------------------------------------
8337
8338
    /**
8339
     * <p>Check if a CharSequence starts with a specified prefix.</p>
8340
     *
8341
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8342
     * references are considered to be equal. The comparison is case sensitive.</p>
8343
     *
8344
     * <pre>
8345
     * StringUtils.startsWith(null, null)      = true
8346
     * StringUtils.startsWith(null, "abc")     = false
8347
     * StringUtils.startsWith("abcdef", null)  = false
8348
     * StringUtils.startsWith("abcdef", "abc") = true
8349
     * StringUtils.startsWith("ABCDEF", "abc") = false
8350
     * </pre>
8351
     *
8352
     * @see java.lang.String#startsWith(String)
8353
     * @param str  the CharSequence to check, may be null
8354
     * @param prefix the prefix to find, may be null
8355
     * @return {@code true} if the CharSequence starts with the prefix, case sensitive, or
8356
     *  both {@code null}
8357
     * @since 2.4
8358
     * @since 3.0 Changed signature from startsWith(String, String) to startsWith(CharSequence, CharSequence)
8359
     */
8360
    public static boolean startsWith(final CharSequence str, final CharSequence prefix) {
8361 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return startsWith(str, prefix, false);
8362
    }
8363
8364
    /**
8365
     * <p>Case insensitive check if a CharSequence starts with a specified prefix.</p>
8366
     *
8367
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8368
     * references are considered to be equal. The comparison is case insensitive.</p>
8369
     *
8370
     * <pre>
8371
     * StringUtils.startsWithIgnoreCase(null, null)      = true
8372
     * StringUtils.startsWithIgnoreCase(null, "abc")     = false
8373
     * StringUtils.startsWithIgnoreCase("abcdef", null)  = false
8374
     * StringUtils.startsWithIgnoreCase("abcdef", "abc") = true
8375
     * StringUtils.startsWithIgnoreCase("ABCDEF", "abc") = true
8376
     * </pre>
8377
     *
8378
     * @see java.lang.String#startsWith(String)
8379
     * @param str  the CharSequence to check, may be null
8380
     * @param prefix the prefix to find, may be null
8381
     * @return {@code true} if the CharSequence starts with the prefix, case insensitive, or
8382
     *  both {@code null}
8383
     * @since 2.4
8384
     * @since 3.0 Changed signature from startsWithIgnoreCase(String, String) to startsWithIgnoreCase(CharSequence, CharSequence)
8385
     */
8386
    public static boolean startsWithIgnoreCase(final CharSequence str, final CharSequence prefix) {
8387 1 1. startsWithIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return startsWith(str, prefix, true);
8388
    }
8389
8390
    /**
8391
     * <p>Check if a CharSequence starts with a specified prefix (optionally case insensitive).</p>
8392
     *
8393
     * @see java.lang.String#startsWith(String)
8394
     * @param str  the CharSequence to check, may be null
8395
     * @param prefix the prefix to find, may be null
8396
     * @param ignoreCase indicates whether the compare should ignore case
8397
     *  (case insensitive) or not.
8398
     * @return {@code true} if the CharSequence starts with the prefix or
8399
     *  both {@code null}
8400
     */
8401
    private static boolean startsWith(final CharSequence str, final CharSequence prefix, final boolean ignoreCase) {
8402 2 1. startsWith : negated conditional → KILLED
2. startsWith : negated conditional → KILLED
        if (str == null || prefix == null) {
8403 3 1. startsWith : negated conditional → KILLED
2. startsWith : negated conditional → KILLED
3. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str == null && prefix == null;
8404
        }
8405 2 1. startsWith : changed conditional boundary → SURVIVED
2. startsWith : negated conditional → KILLED
        if (prefix.length() > str.length()) {
8406 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8407
        }
8408 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(str, ignoreCase, 0, prefix, 0, prefix.length());
8409
    }
8410
8411
    /**
8412
     * <p>Check if a CharSequence starts with any of the provided case-sensitive prefixes.</p>
8413
     *
8414
     * <pre>
8415
     * StringUtils.startsWithAny(null, null)      = false
8416
     * StringUtils.startsWithAny(null, new String[] {"abc"})  = false
8417
     * StringUtils.startsWithAny("abcxyz", null)     = false
8418
     * StringUtils.startsWithAny("abcxyz", new String[] {""}) = true
8419
     * StringUtils.startsWithAny("abcxyz", new String[] {"abc"}) = true
8420
     * StringUtils.startsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = true
8421
     * StringUtils.startsWithAny("abcxyz", null, "xyz", "ABCX") = false
8422
     * StringUtils.startsWithAny("ABCXYZ", null, "xyz", "abc") = false
8423
     * </pre>
8424
     *
8425
     * @param sequence the CharSequence to check, may be null
8426
     * @param searchStrings the case-sensitive CharSequence prefixes, may be empty or contain {@code null}
8427
     * @see StringUtils#startsWith(CharSequence, CharSequence)
8428
     * @return {@code true} if the input {@code sequence} is {@code null} AND no {@code searchStrings} are provided, or
8429
     *   the input {@code sequence} begins with any of the provided case-sensitive {@code searchStrings}.
8430
     * @since 2.5
8431
     * @since 3.0 Changed signature from startsWithAny(String, String[]) to startsWithAny(CharSequence, CharSequence...)
8432
     */
8433
    public static boolean startsWithAny(final CharSequence sequence, final CharSequence... searchStrings) {
8434 2 1. startsWithAny : negated conditional → KILLED
2. startsWithAny : negated conditional → KILLED
        if (isEmpty(sequence) || ArrayUtils.isEmpty(searchStrings)) {
8435 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8436
        }
8437 3 1. startsWithAny : changed conditional boundary → KILLED
2. startsWithAny : Changed increment from 1 to -1 → KILLED
3. startsWithAny : negated conditional → KILLED
        for (final CharSequence searchString : searchStrings) {
8438 1 1. startsWithAny : negated conditional → KILLED
            if (startsWith(sequence, searchString)) {
8439 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
8440
            }
8441
        }
8442 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
8443
    }
8444
8445
    // endsWith
8446
    //-----------------------------------------------------------------------
8447
8448
    /**
8449
     * <p>Check if a CharSequence ends with a specified suffix.</p>
8450
     *
8451
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8452
     * references are considered to be equal. The comparison is case sensitive.</p>
8453
     *
8454
     * <pre>
8455
     * StringUtils.endsWith(null, null)      = true
8456
     * StringUtils.endsWith(null, "def")     = false
8457
     * StringUtils.endsWith("abcdef", null)  = false
8458
     * StringUtils.endsWith("abcdef", "def") = true
8459
     * StringUtils.endsWith("ABCDEF", "def") = false
8460
     * StringUtils.endsWith("ABCDEF", "cde") = false
8461
     * StringUtils.endsWith("ABCDEF", "")    = true
8462
     * </pre>
8463
     *
8464
     * @see java.lang.String#endsWith(String)
8465
     * @param str  the CharSequence to check, may be null
8466
     * @param suffix the suffix to find, may be null
8467
     * @return {@code true} if the CharSequence ends with the suffix, case sensitive, or
8468
     *  both {@code null}
8469
     * @since 2.4
8470
     * @since 3.0 Changed signature from endsWith(String, String) to endsWith(CharSequence, CharSequence)
8471
     */
8472
    public static boolean endsWith(final CharSequence str, final CharSequence suffix) {
8473 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return endsWith(str, suffix, false);
8474
    }
8475
8476
    /**
8477
     * <p>Case insensitive check if a CharSequence ends with a specified suffix.</p>
8478
     *
8479
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8480
     * references are considered to be equal. The comparison is case insensitive.</p>
8481
     *
8482
     * <pre>
8483
     * StringUtils.endsWithIgnoreCase(null, null)      = true
8484
     * StringUtils.endsWithIgnoreCase(null, "def")     = false
8485
     * StringUtils.endsWithIgnoreCase("abcdef", null)  = false
8486
     * StringUtils.endsWithIgnoreCase("abcdef", "def") = true
8487
     * StringUtils.endsWithIgnoreCase("ABCDEF", "def") = true
8488
     * StringUtils.endsWithIgnoreCase("ABCDEF", "cde") = false
8489
     * </pre>
8490
     *
8491
     * @see java.lang.String#endsWith(String)
8492
     * @param str  the CharSequence to check, may be null
8493
     * @param suffix the suffix to find, may be null
8494
     * @return {@code true} if the CharSequence ends with the suffix, case insensitive, or
8495
     *  both {@code null}
8496
     * @since 2.4
8497
     * @since 3.0 Changed signature from endsWithIgnoreCase(String, String) to endsWithIgnoreCase(CharSequence, CharSequence)
8498
     */
8499
    public static boolean endsWithIgnoreCase(final CharSequence str, final CharSequence suffix) {
8500 1 1. endsWithIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return endsWith(str, suffix, true);
8501
    }
8502
8503
    /**
8504
     * <p>Check if a CharSequence ends with a specified suffix (optionally case insensitive).</p>
8505
     *
8506
     * @see java.lang.String#endsWith(String)
8507
     * @param str  the CharSequence to check, may be null
8508
     * @param suffix the suffix to find, may be null
8509
     * @param ignoreCase indicates whether the compare should ignore case
8510
     *  (case insensitive) or not.
8511
     * @return {@code true} if the CharSequence starts with the prefix or
8512
     *  both {@code null}
8513
     */
8514
    private static boolean endsWith(final CharSequence str, final CharSequence suffix, final boolean ignoreCase) {
8515 2 1. endsWith : negated conditional → KILLED
2. endsWith : negated conditional → KILLED
        if (str == null || suffix == null) {
8516 3 1. endsWith : negated conditional → KILLED
2. endsWith : negated conditional → KILLED
3. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str == null && suffix == null;
8517
        }
8518 2 1. endsWith : changed conditional boundary → SURVIVED
2. endsWith : negated conditional → KILLED
        if (suffix.length() > str.length()) {
8519 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8520
        }
8521 1 1. endsWith : Replaced integer subtraction with addition → KILLED
        final int strOffset = str.length() - suffix.length();
8522 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(str, ignoreCase, strOffset, suffix, 0, suffix.length());
8523
    }
8524
8525
    /**
8526
     * <p>
8527
     * Similar to <a
8528
     * href="http://www.w3.org/TR/xpath/#function-normalize-space">http://www.w3.org/TR/xpath/#function-normalize
8529
     * -space</a>
8530
     * </p>
8531
     * <p>
8532
     * The function returns the argument string with whitespace normalized by using
8533
     * <code>{@link #trim(String)}</code> to remove leading and trailing whitespace
8534
     * and then replacing sequences of whitespace characters by a single space.
8535
     * </p>
8536
     * In XML Whitespace characters are the same as those allowed by the <a
8537
     * href="http://www.w3.org/TR/REC-xml/#NT-S">S</a> production, which is S ::= (#x20 | #x9 | #xD | #xA)+
8538
     * <p>
8539
     * Java's regexp pattern \s defines whitespace as [ \t\n\x0B\f\r]
8540
     *
8541
     * <p>For reference:</p>
8542
     * <ul>
8543
     * <li>\x0B = vertical tab</li>
8544
     * <li>\f = #xC = form feed</li>
8545
     * <li>#x20 = space</li>
8546
     * <li>#x9 = \t</li>
8547
     * <li>#xA = \n</li>
8548
     * <li>#xD = \r</li>
8549
     * </ul>
8550
     *
8551
     * <p>
8552
     * The difference is that Java's whitespace includes vertical tab and form feed, which this functional will also
8553
     * normalize. Additionally <code>{@link #trim(String)}</code> removes control characters (char &lt;= 32) from both
8554
     * ends of this String.
8555
     * </p>
8556
     *
8557
     * @see Pattern
8558
     * @see #trim(String)
8559
     * @see <a
8560
     *      href="http://www.w3.org/TR/xpath/#function-normalize-space">http://www.w3.org/TR/xpath/#function-normalize-space</a>
8561
     * @param str the source String to normalize whitespaces from, may be null
8562
     * @return the modified string with whitespace normalized, {@code null} if null String input
8563
     *
8564
     * @since 3.0
8565
     */
8566
    public static String normalizeSpace(final String str) {
8567
        // LANG-1020: Improved performance significantly by normalizing manually instead of using regex
8568
        // See https://github.com/librucha/commons-lang-normalizespaces-benchmark for performance test
8569 1 1. normalizeSpace : negated conditional → KILLED
        if (isEmpty(str)) {
8570 1 1. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8571
        }
8572
        final int size = str.length();
8573
        final char[] newChars = new char[size];
8574
        int count = 0;
8575
        int whitespacesCount = 0;
8576
        boolean startWhitespaces = true;
8577 3 1. normalizeSpace : changed conditional boundary → KILLED
2. normalizeSpace : Changed increment from 1 to -1 → KILLED
3. normalizeSpace : negated conditional → KILLED
        for (int i = 0; i < size; i++) {
8578
            final char actualChar = str.charAt(i);
8579
            final boolean isWhitespace = Character.isWhitespace(actualChar);
8580 1 1. normalizeSpace : negated conditional → KILLED
            if (!isWhitespace) {
8581
                startWhitespaces = false;
8582 2 1. normalizeSpace : Changed increment from 1 to -1 → KILLED
2. normalizeSpace : negated conditional → KILLED
                newChars[count++] = (actualChar == 160 ? 32 : actualChar);
8583
                whitespacesCount = 0;
8584
            } else {
8585 2 1. normalizeSpace : negated conditional → KILLED
2. normalizeSpace : negated conditional → KILLED
                if (whitespacesCount == 0 && !startWhitespaces) {
8586 1 1. normalizeSpace : Changed increment from 1 to -1 → KILLED
                    newChars[count++] = SPACE.charAt(0);
8587
                }
8588 1 1. normalizeSpace : Changed increment from 1 to -1 → SURVIVED
                whitespacesCount++;
8589
            }
8590
        }
8591 1 1. normalizeSpace : negated conditional → KILLED
        if (startWhitespaces) {
8592 1 1. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
8593
        }
8594 4 1. normalizeSpace : Replaced integer subtraction with addition → SURVIVED
2. normalizeSpace : changed conditional boundary → KILLED
3. normalizeSpace : negated conditional → KILLED
4. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newChars, 0, count - (whitespacesCount > 0 ? 1 : 0)).trim();
8595
    }
8596
8597
    /**
8598
     * <p>Check if a CharSequence ends with any of the provided case-sensitive suffixes.</p>
8599
     *
8600
     * <pre>
8601
     * StringUtils.endsWithAny(null, null)      = false
8602
     * StringUtils.endsWithAny(null, new String[] {"abc"})  = false
8603
     * StringUtils.endsWithAny("abcxyz", null)     = false
8604
     * StringUtils.endsWithAny("abcxyz", new String[] {""}) = true
8605
     * StringUtils.endsWithAny("abcxyz", new String[] {"xyz"}) = true
8606
     * StringUtils.endsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = true
8607
     * StringUtils.endsWithAny("abcXYZ", "def", "XYZ") = true
8608
     * StringUtils.endsWithAny("abcXYZ", "def", "xyz") = false
8609
     * </pre>
8610
     *
8611
     * @param sequence  the CharSequence to check, may be null
8612
     * @param searchStrings the case-sensitive CharSequences to find, may be empty or contain {@code null}
8613
     * @see StringUtils#endsWith(CharSequence, CharSequence)
8614
     * @return {@code true} if the input {@code sequence} is {@code null} AND no {@code searchStrings} are provided, or
8615
     *   the input {@code sequence} ends in any of the provided case-sensitive {@code searchStrings}.
8616
     * @since 3.0
8617
     */
8618
    public static boolean endsWithAny(final CharSequence sequence, final CharSequence... searchStrings) {
8619 2 1. endsWithAny : negated conditional → KILLED
2. endsWithAny : negated conditional → KILLED
        if (isEmpty(sequence) || ArrayUtils.isEmpty(searchStrings)) {
8620 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8621
        }
8622 3 1. endsWithAny : changed conditional boundary → KILLED
2. endsWithAny : Changed increment from 1 to -1 → KILLED
3. endsWithAny : negated conditional → KILLED
        for (final CharSequence searchString : searchStrings) {
8623 1 1. endsWithAny : negated conditional → KILLED
            if (endsWith(sequence, searchString)) {
8624 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
8625
            }
8626
        }
8627 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
8628
    }
8629
8630
    /**
8631
     * Appends the suffix to the end of the string if the string does not
8632
     * already end with the suffix.
8633
     *
8634
     * @param str The string.
8635
     * @param suffix The suffix to append to the end of the string.
8636
     * @param ignoreCase Indicates whether the compare should ignore case.
8637
     * @param suffixes Additional suffixes that are valid terminators (optional).
8638
     *
8639
     * @return A new String if suffix was appended, the same string otherwise.
8640
     */
8641
    private static String appendIfMissing(final String str, final CharSequence suffix, final boolean ignoreCase, final CharSequence... suffixes) {
8642 3 1. appendIfMissing : negated conditional → KILLED
2. appendIfMissing : negated conditional → KILLED
3. appendIfMissing : negated conditional → KILLED
        if (str == null || isEmpty(suffix) || endsWith(str, suffix, ignoreCase)) {
8643 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8644
        }
8645 3 1. appendIfMissing : changed conditional boundary → SURVIVED
2. appendIfMissing : negated conditional → KILLED
3. appendIfMissing : negated conditional → KILLED
        if (suffixes != null && suffixes.length > 0) {
8646 3 1. appendIfMissing : changed conditional boundary → KILLED
2. appendIfMissing : Changed increment from 1 to -1 → KILLED
3. appendIfMissing : negated conditional → KILLED
            for (final CharSequence s : suffixes) {
8647 1 1. appendIfMissing : negated conditional → KILLED
                if (endsWith(str, s, ignoreCase)) {
8648 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
                    return str;
8649
                }
8650
            }
8651
        }
8652 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str + suffix.toString();
8653
    }
8654
8655
    /**
8656
     * Appends the suffix to the end of the string if the string does not
8657
     * already end with any of the suffixes.
8658
     *
8659
     * <pre>
8660
     * StringUtils.appendIfMissing(null, null) = null
8661
     * StringUtils.appendIfMissing("abc", null) = "abc"
8662
     * StringUtils.appendIfMissing("", "xyz") = "xyz"
8663
     * StringUtils.appendIfMissing("abc", "xyz") = "abcxyz"
8664
     * StringUtils.appendIfMissing("abcxyz", "xyz") = "abcxyz"
8665
     * StringUtils.appendIfMissing("abcXYZ", "xyz") = "abcXYZxyz"
8666
     * </pre>
8667
     * <p>With additional suffixes,</p>
8668
     * <pre>
8669
     * StringUtils.appendIfMissing(null, null, null) = null
8670
     * StringUtils.appendIfMissing("abc", null, null) = "abc"
8671
     * StringUtils.appendIfMissing("", "xyz", null) = "xyz"
8672
     * StringUtils.appendIfMissing("abc", "xyz", new CharSequence[]{null}) = "abcxyz"
8673
     * StringUtils.appendIfMissing("abc", "xyz", "") = "abc"
8674
     * StringUtils.appendIfMissing("abc", "xyz", "mno") = "abcxyz"
8675
     * StringUtils.appendIfMissing("abcxyz", "xyz", "mno") = "abcxyz"
8676
     * StringUtils.appendIfMissing("abcmno", "xyz", "mno") = "abcmno"
8677
     * StringUtils.appendIfMissing("abcXYZ", "xyz", "mno") = "abcXYZxyz"
8678
     * StringUtils.appendIfMissing("abcMNO", "xyz", "mno") = "abcMNOxyz"
8679
     * </pre>
8680
     *
8681
     * @param str The string.
8682
     * @param suffix The suffix to append to the end of the string.
8683
     * @param suffixes Additional suffixes that are valid terminators.
8684
     *
8685
     * @return A new String if suffix was appended, the same string otherwise.
8686
     *
8687
     * @since 3.2
8688
     */
8689
    public static String appendIfMissing(final String str, final CharSequence suffix, final CharSequence... suffixes) {
8690 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return appendIfMissing(str, suffix, false, suffixes);
8691
    }
8692
8693
    /**
8694
     * Appends the suffix to the end of the string if the string does not
8695
     * already end, case insensitive, with any of the suffixes.
8696
     *
8697
     * <pre>
8698
     * StringUtils.appendIfMissingIgnoreCase(null, null) = null
8699
     * StringUtils.appendIfMissingIgnoreCase("abc", null) = "abc"
8700
     * StringUtils.appendIfMissingIgnoreCase("", "xyz") = "xyz"
8701
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz") = "abcxyz"
8702
     * StringUtils.appendIfMissingIgnoreCase("abcxyz", "xyz") = "abcxyz"
8703
     * StringUtils.appendIfMissingIgnoreCase("abcXYZ", "xyz") = "abcXYZ"
8704
     * </pre>
8705
     * <p>With additional suffixes,</p>
8706
     * <pre>
8707
     * StringUtils.appendIfMissingIgnoreCase(null, null, null) = null
8708
     * StringUtils.appendIfMissingIgnoreCase("abc", null, null) = "abc"
8709
     * StringUtils.appendIfMissingIgnoreCase("", "xyz", null) = "xyz"
8710
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", new CharSequence[]{null}) = "abcxyz"
8711
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", "") = "abc"
8712
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", "mno") = "axyz"
8713
     * StringUtils.appendIfMissingIgnoreCase("abcxyz", "xyz", "mno") = "abcxyz"
8714
     * StringUtils.appendIfMissingIgnoreCase("abcmno", "xyz", "mno") = "abcmno"
8715
     * StringUtils.appendIfMissingIgnoreCase("abcXYZ", "xyz", "mno") = "abcXYZ"
8716
     * StringUtils.appendIfMissingIgnoreCase("abcMNO", "xyz", "mno") = "abcMNO"
8717
     * </pre>
8718
     *
8719
     * @param str The string.
8720
     * @param suffix The suffix to append to the end of the string.
8721
     * @param suffixes Additional suffixes that are valid terminators.
8722
     *
8723
     * @return A new String if suffix was appended, the same string otherwise.
8724
     *
8725
     * @since 3.2
8726
     */
8727
    public static String appendIfMissingIgnoreCase(final String str, final CharSequence suffix, final CharSequence... suffixes) {
8728 1 1. appendIfMissingIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return appendIfMissing(str, suffix, true, suffixes);
8729
    }
8730
8731
    /**
8732
     * Prepends the prefix to the start of the string if the string does not
8733
     * already start with any of the prefixes.
8734
     *
8735
     * @param str The string.
8736
     * @param prefix The prefix to prepend to the start of the string.
8737
     * @param ignoreCase Indicates whether the compare should ignore case.
8738
     * @param prefixes Additional prefixes that are valid (optional).
8739
     *
8740
     * @return A new String if prefix was prepended, the same string otherwise.
8741
     */
8742
    private static String prependIfMissing(final String str, final CharSequence prefix, final boolean ignoreCase, final CharSequence... prefixes) {
8743 3 1. prependIfMissing : negated conditional → KILLED
2. prependIfMissing : negated conditional → KILLED
3. prependIfMissing : negated conditional → KILLED
        if (str == null || isEmpty(prefix) || startsWith(str, prefix, ignoreCase)) {
8744 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8745
        }
8746 3 1. prependIfMissing : changed conditional boundary → SURVIVED
2. prependIfMissing : negated conditional → KILLED
3. prependIfMissing : negated conditional → KILLED
        if (prefixes != null && prefixes.length > 0) {
8747 3 1. prependIfMissing : changed conditional boundary → KILLED
2. prependIfMissing : Changed increment from 1 to -1 → KILLED
3. prependIfMissing : negated conditional → KILLED
            for (final CharSequence p : prefixes) {
8748 1 1. prependIfMissing : negated conditional → KILLED
                if (startsWith(str, p, ignoreCase)) {
8749 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
                    return str;
8750
                }
8751
            }
8752
        }
8753 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prefix.toString() + str;
8754
    }
8755
8756
    /**
8757
     * Prepends the prefix to the start of the string if the string does not
8758
     * already start with any of the prefixes.
8759
     *
8760
     * <pre>
8761
     * StringUtils.prependIfMissing(null, null) = null
8762
     * StringUtils.prependIfMissing("abc", null) = "abc"
8763
     * StringUtils.prependIfMissing("", "xyz") = "xyz"
8764
     * StringUtils.prependIfMissing("abc", "xyz") = "xyzabc"
8765
     * StringUtils.prependIfMissing("xyzabc", "xyz") = "xyzabc"
8766
     * StringUtils.prependIfMissing("XYZabc", "xyz") = "xyzXYZabc"
8767
     * </pre>
8768
     * <p>With additional prefixes,</p>
8769
     * <pre>
8770
     * StringUtils.prependIfMissing(null, null, null) = null
8771
     * StringUtils.prependIfMissing("abc", null, null) = "abc"
8772
     * StringUtils.prependIfMissing("", "xyz", null) = "xyz"
8773
     * StringUtils.prependIfMissing("abc", "xyz", new CharSequence[]{null}) = "xyzabc"
8774
     * StringUtils.prependIfMissing("abc", "xyz", "") = "abc"
8775
     * StringUtils.prependIfMissing("abc", "xyz", "mno") = "xyzabc"
8776
     * StringUtils.prependIfMissing("xyzabc", "xyz", "mno") = "xyzabc"
8777
     * StringUtils.prependIfMissing("mnoabc", "xyz", "mno") = "mnoabc"
8778
     * StringUtils.prependIfMissing("XYZabc", "xyz", "mno") = "xyzXYZabc"
8779
     * StringUtils.prependIfMissing("MNOabc", "xyz", "mno") = "xyzMNOabc"
8780
     * </pre>
8781
     *
8782
     * @param str The string.
8783
     * @param prefix The prefix to prepend to the start of the string.
8784
     * @param prefixes Additional prefixes that are valid.
8785
     *
8786
     * @return A new String if prefix was prepended, the same string otherwise.
8787
     *
8788
     * @since 3.2
8789
     */
8790
    public static String prependIfMissing(final String str, final CharSequence prefix, final CharSequence... prefixes) {
8791 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prependIfMissing(str, prefix, false, prefixes);
8792
    }
8793
8794
    /**
8795
     * Prepends the prefix to the start of the string if the string does not
8796
     * already start, case insensitive, with any of the prefixes.
8797
     *
8798
     * <pre>
8799
     * StringUtils.prependIfMissingIgnoreCase(null, null) = null
8800
     * StringUtils.prependIfMissingIgnoreCase("abc", null) = "abc"
8801
     * StringUtils.prependIfMissingIgnoreCase("", "xyz") = "xyz"
8802
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz") = "xyzabc"
8803
     * StringUtils.prependIfMissingIgnoreCase("xyzabc", "xyz") = "xyzabc"
8804
     * StringUtils.prependIfMissingIgnoreCase("XYZabc", "xyz") = "XYZabc"
8805
     * </pre>
8806
     * <p>With additional prefixes,</p>
8807
     * <pre>
8808
     * StringUtils.prependIfMissingIgnoreCase(null, null, null) = null
8809
     * StringUtils.prependIfMissingIgnoreCase("abc", null, null) = "abc"
8810
     * StringUtils.prependIfMissingIgnoreCase("", "xyz", null) = "xyz"
8811
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", new CharSequence[]{null}) = "xyzabc"
8812
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", "") = "abc"
8813
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", "mno") = "xyzabc"
8814
     * StringUtils.prependIfMissingIgnoreCase("xyzabc", "xyz", "mno") = "xyzabc"
8815
     * StringUtils.prependIfMissingIgnoreCase("mnoabc", "xyz", "mno") = "mnoabc"
8816
     * StringUtils.prependIfMissingIgnoreCase("XYZabc", "xyz", "mno") = "XYZabc"
8817
     * StringUtils.prependIfMissingIgnoreCase("MNOabc", "xyz", "mno") = "MNOabc"
8818
     * </pre>
8819
     *
8820
     * @param str The string.
8821
     * @param prefix The prefix to prepend to the start of the string.
8822
     * @param prefixes Additional prefixes that are valid (optional).
8823
     *
8824
     * @return A new String if prefix was prepended, the same string otherwise.
8825
     *
8826
     * @since 3.2
8827
     */
8828
    public static String prependIfMissingIgnoreCase(final String str, final CharSequence prefix, final CharSequence... prefixes) {
8829 1 1. prependIfMissingIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prependIfMissing(str, prefix, true, prefixes);
8830
    }
8831
8832
    /**
8833
     * Converts a <code>byte[]</code> to a String using the specified character encoding.
8834
     *
8835
     * @param bytes
8836
     *            the byte array to read from
8837
     * @param charsetName
8838
     *            the encoding to use, if null then use the platform default
8839
     * @return a new String
8840
     * @throws UnsupportedEncodingException
8841
     *             If the named charset is not supported
8842
     * @throws NullPointerException
8843
     *             if the input is null
8844
     * @deprecated use {@link StringUtils#toEncodedString(byte[], Charset)} instead of String constants in your code
8845
     * @since 3.1
8846
     */
8847
    @Deprecated
8848
    public static String toString(final byte[] bytes, final String charsetName) throws UnsupportedEncodingException {
8849 2 1. toString : negated conditional → KILLED
2. toString : mutated return of Object value for org/apache/commons/lang3/StringUtils::toString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return charsetName != null ? new String(bytes, charsetName) : new String(bytes, Charset.defaultCharset());
8850
    }
8851
8852
    /**
8853
     * Converts a <code>byte[]</code> to a String using the specified character encoding.
8854
     * 
8855
     * @param bytes
8856
     *            the byte array to read from
8857
     * @param charset
8858
     *            the encoding to use, if null then use the platform default
8859
     * @return a new String
8860
     * @throws NullPointerException
8861
     *             if {@code bytes} is null
8862
     * @since 3.2
8863
     * @since 3.3 No longer throws {@link UnsupportedEncodingException}.
8864
     */
8865
    public static String toEncodedString(final byte[] bytes, final Charset charset) {
8866 2 1. toEncodedString : negated conditional → KILLED
2. toEncodedString : mutated return of Object value for org/apache/commons/lang3/StringUtils::toEncodedString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(bytes, charset != null ? charset : Charset.defaultCharset());
8867
    }
8868
8869
    /**
8870
     * <p>
8871
     * Wraps a string with a char.
8872
     * </p>
8873
     * 
8874
     * <pre>
8875
     * StringUtils.wrap(null, *)        = null
8876
     * StringUtils.wrap("", *)          = ""
8877
     * StringUtils.wrap("ab", '\0')     = "ab"
8878
     * StringUtils.wrap("ab", 'x')      = "xabx"
8879
     * StringUtils.wrap("ab", '\'')     = "'ab'"
8880
     * StringUtils.wrap("\"ab\"", '\"') = "\"\"ab\"\""
8881
     * </pre>
8882
     * 
8883
     * @param str
8884
     *            the string to be wrapped, may be {@code null}
8885
     * @param wrapWith
8886
     *            the char that will wrap {@code str}
8887
     * @return the wrapped string, or {@code null} if {@code str==null}
8888
     * @since 3.4
8889
     */
8890
    public static String wrap(final String str, final char wrapWith) {
8891
8892 2 1. wrap : negated conditional → KILLED
2. wrap : negated conditional → KILLED
        if (isEmpty(str) || wrapWith == '\0') {
8893 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8894
        }
8895
8896 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return wrapWith + str + wrapWith;
8897
    }
8898
8899
    /**
8900
     * <p>
8901
     * Wraps a String with another String.
8902
     * </p>
8903
     * 
8904
     * <p>
8905
     * A {@code null} input String returns {@code null}.
8906
     * </p>
8907
     * 
8908
     * <pre>
8909
     * StringUtils.wrap(null, *)         = null
8910
     * StringUtils.wrap("", *)           = ""
8911
     * StringUtils.wrap("ab", null)      = "ab"
8912
     * StringUtils.wrap("ab", "x")       = "xabx"
8913
     * StringUtils.wrap("ab", "\"")      = "\"ab\""
8914
     * StringUtils.wrap("\"ab\"", "\"")  = "\"\"ab\"\""
8915
     * StringUtils.wrap("ab", "'")       = "'ab'"
8916
     * StringUtils.wrap("'abcd'", "'")   = "''abcd''"
8917
     * StringUtils.wrap("\"abcd\"", "'") = "'\"abcd\"'"
8918
     * StringUtils.wrap("'abcd'", "\"")  = "\"'abcd'\""
8919
     * </pre>
8920
     * 
8921
     * @param str
8922
     *            the String to be wrapper, may be null
8923
     * @param wrapWith
8924
     *            the String that will wrap str
8925
     * @return wrapped String, {@code null} if null String input
8926
     * @since 3.4
8927
     */
8928
    public static String wrap(final String str, final String wrapWith) {
8929
8930 2 1. wrap : negated conditional → KILLED
2. wrap : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapWith)) {
8931 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8932
        }
8933
8934 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return wrapWith.concat(str).concat(wrapWith);
8935
    }
8936
8937
    /**
8938
     * <p>
8939
     * Wraps a string with a char if that char is missing from the start or end of the given string.
8940
     * </p>
8941
     * 
8942
     * <pre>
8943
     * StringUtils.wrap(null, *)        = null
8944
     * StringUtils.wrap("", *)          = ""
8945
     * StringUtils.wrap("ab", '\0')     = "ab"
8946
     * StringUtils.wrap("ab", 'x')      = "xabx"
8947
     * StringUtils.wrap("ab", '\'')     = "'ab'"
8948
     * StringUtils.wrap("\"ab\"", '\"') = "\"ab\""
8949
     * StringUtils.wrap("/", '/')  = "/"
8950
     * StringUtils.wrap("a/b/c", '/')  = "/a/b/c/"
8951
     * StringUtils.wrap("/a/b/c", '/')  = "/a/b/c/"
8952
     * StringUtils.wrap("a/b/c/", '/')  = "/a/b/c/"
8953
     * </pre>
8954
     * 
8955
     * @param str
8956
     *            the string to be wrapped, may be {@code null}
8957
     * @param wrapWith
8958
     *            the char that will wrap {@code str}
8959
     * @return the wrapped string, or {@code null} if {@code str==null}
8960
     * @since 3.5
8961
     */
8962
    public static String wrapIfMissing(final String str, final char wrapWith) {
8963 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (isEmpty(str) || wrapWith == '\0') {
8964 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8965
        }
8966 1 1. wrapIfMissing : Replaced integer addition with subtraction → KILLED
        final StringBuilder builder = new StringBuilder(str.length() + 2);
8967 1 1. wrapIfMissing : negated conditional → KILLED
        if (str.charAt(0) != wrapWith) {
8968
            builder.append(wrapWith);
8969
        }
8970
        builder.append(str);
8971 2 1. wrapIfMissing : Replaced integer subtraction with addition → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (str.charAt(str.length() - 1) != wrapWith) {
8972
            builder.append(wrapWith);
8973
        }
8974 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
8975
    }
8976
8977
    /**
8978
     * <p>
8979
     * Wraps a string with a string if that string is missing from the start or end of the given string.
8980
     * </p>
8981
     * 
8982
     * <pre>
8983
     * StringUtils.wrap(null, *)         = null
8984
     * StringUtils.wrap("", *)           = ""
8985
     * StringUtils.wrap("ab", null)      = "ab"
8986
     * StringUtils.wrap("ab", "x")       = "xabx"
8987
     * StringUtils.wrap("ab", "\"")      = "\"ab\""
8988
     * StringUtils.wrap("\"ab\"", "\"")  = "\"ab\""
8989
     * StringUtils.wrap("ab", "'")       = "'ab'"
8990
     * StringUtils.wrap("'abcd'", "'")   = "'abcd'"
8991
     * StringUtils.wrap("\"abcd\"", "'") = "'\"abcd\"'"
8992
     * StringUtils.wrap("'abcd'", "\"")  = "\"'abcd'\""
8993
     * StringUtils.wrap("/", "/")  = "/"
8994
     * StringUtils.wrap("a/b/c", "/")  = "/a/b/c/"
8995
     * StringUtils.wrap("/a/b/c", "/")  = "/a/b/c/"
8996
     * StringUtils.wrap("a/b/c/", "/")  = "/a/b/c/"
8997
     * </pre>
8998
     * 
8999
     * @param str
9000
     *            the string to be wrapped, may be {@code null}
9001
     * @param wrapWith
9002
     *            the char that will wrap {@code str}
9003
     * @return the wrapped string, or {@code null} if {@code str==null}
9004
     * @since 3.5
9005
     */
9006
    public static String wrapIfMissing(final String str, final String wrapWith) {
9007 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapWith)) {
9008 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9009
        }
9010 2 1. wrapIfMissing : Replaced integer addition with subtraction → SURVIVED
2. wrapIfMissing : Replaced integer addition with subtraction → SURVIVED
        final StringBuilder builder = new StringBuilder(str.length() + wrapWith.length() + wrapWith.length());
9011 1 1. wrapIfMissing : negated conditional → KILLED
        if (!str.startsWith(wrapWith)) {
9012
            builder.append(wrapWith);
9013
        }
9014
        builder.append(str);
9015 1 1. wrapIfMissing : negated conditional → KILLED
        if (!str.endsWith(wrapWith)) {
9016
            builder.append(wrapWith);
9017
        }
9018 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
9019
    }
9020
9021
    /**
9022
     * <p>
9023
     * Unwraps a given string from anther string.
9024
     * </p>
9025
     *
9026
     * <pre>
9027
     * StringUtils.unwrap(null, null)         = null
9028
     * StringUtils.unwrap(null, "")           = null
9029
     * StringUtils.unwrap(null, "1")          = null
9030
     * StringUtils.unwrap("\'abc\'", "\'")    = "abc"
9031
     * StringUtils.unwrap("\"abc\"", "\"")    = "abc"
9032
     * StringUtils.unwrap("AABabcBAA", "AA")  = "BabcB"
9033
     * StringUtils.unwrap("A", "#")           = "A"
9034
     * StringUtils.unwrap("#A", "#")          = "#A"
9035
     * StringUtils.unwrap("A#", "#")          = "A#"
9036
     * </pre>
9037
     *
9038
     * @param str
9039
     *          the String to be unwrapped, can be null
9040
     * @param wrapToken
9041
     *          the String used to unwrap
9042
     * @return unwrapped String or the original string 
9043
     *          if it is not quoted properly with the wrapToken
9044
     * @since 3.6
9045
     */
9046
    public static String unwrap(final String str, final String wrapToken) {
9047 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapToken)) {
9048 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9049
        }
9050
9051 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (startsWith(str, wrapToken) && endsWith(str, wrapToken)) {
9052
            final int startIndex = str.indexOf(wrapToken);
9053
            final int endIndex = str.lastIndexOf(wrapToken);
9054
            final int wrapLength = wrapToken.length();
9055 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
            if (startIndex != -1 && endIndex != -1) {
9056 2 1. unwrap : Replaced integer addition with subtraction → KILLED
2. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(startIndex + wrapLength, endIndex);
9057
            }
9058
        }
9059
9060 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
9061
    }
9062
9063
    /**
9064
     * <p>
9065
     * Unwraps a given string from a character.
9066
     * </p>
9067
     * 
9068
     * <pre>
9069
     * StringUtils.unwrap(null, null)         = null
9070
     * StringUtils.unwrap(null, '\0')         = null
9071
     * StringUtils.unwrap(null, '1')          = null
9072
     * StringUtils.unwrap("\'abc\'", '\'')    = "abc"
9073
     * StringUtils.unwrap("AABabcBAA", 'A')  = "ABabcBA"
9074
     * StringUtils.unwrap("A", '#')           = "A"
9075
     * StringUtils.unwrap("#A", '#')          = "#A"
9076
     * StringUtils.unwrap("A#", '#')          = "A#"
9077
     * </pre>
9078
     *
9079
     * @param str
9080
     *          the String to be unwrapped, can be null
9081
     * @param wrapChar
9082
     *          the character used to unwrap
9083
     * @return unwrapped String or the original string 
9084
     *          if it is not quoted properly with the wrapChar
9085
     * @since 3.6
9086
     */
9087
    public static String unwrap(final String str, final char wrapChar) {
9088 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (isEmpty(str) || wrapChar == '\0') {
9089 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9090
        }
9091
9092 3 1. unwrap : Replaced integer subtraction with addition → KILLED
2. unwrap : negated conditional → KILLED
3. unwrap : negated conditional → KILLED
        if (str.charAt(0) == wrapChar && str.charAt(str.length() - 1) == wrapChar) {
9093
            final int startIndex = 0;
9094 1 1. unwrap : Replaced integer subtraction with addition → KILLED
            final int endIndex = str.length() - 1;
9095 1 1. unwrap : negated conditional → KILLED
            if (startIndex != -1 && endIndex != -1) {
9096 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(startIndex + 1, endIndex);
9097
            }
9098
        }
9099
9100 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
9101
    }
9102
}

Mutations

210

1.1
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

229

1.1
Location : isNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

250

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

251

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

253

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

254

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

255

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

258

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

279

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

280

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

282

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

283

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

284

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

287

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

308

1.1
Location : isNoneEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNoneEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

331

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

332

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

334

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

335

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

336

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

339

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

362

1.1
Location : isNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

386

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

387

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

389

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

390

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

391

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

394

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

418

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

419

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

421

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

422

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

423

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

426

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

450

1.1
Location : isNoneBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNoneBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

479

1.1
Location : trim
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrim(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trim
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrim(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trim to ( if (x != null) null else throw new RuntimeException ) → KILLED

506

1.1
Location : trimToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToNull(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trimToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToNull(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

531

1.1
Location : trimToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToEmpty(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trimToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToEmpty(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

566

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

629

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

632

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

635

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

636

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

638

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

639

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

641

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

642

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

643

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

645

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

673

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStrip_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

700

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

701

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

704

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

730

1.1
Location : stripToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

760

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

761

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

764

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

793

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

794

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

797

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

798

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

799

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

801

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

802

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

804

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

805

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

808

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

838

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

839

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

842

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

843

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

3.3
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

844

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from -1 to 1 → KILLED

846

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

847

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

849

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

850

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

853

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

878

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

908

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

909

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

912

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
changed conditional boundary → KILLED

2.2
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

915

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

937

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

938

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED

942

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
removed call to org/apache/commons/lang3/StringUtils::convertRemainingAccentCharacters → KILLED

944

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED

948

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
changed conditional boundary → KILLED

2.2
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

949

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

952

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

983

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

984

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

986

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

987

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

989

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

990

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

992

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

993

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

995

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1020

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1021

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1022

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1023

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1024

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1025

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1027

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1066

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1104

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1105

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1107

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1108

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1110

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1111

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1113

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1154

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1197

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1198

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1200

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1201

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1203

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1204

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1206

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1229

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1230

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1231

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1232

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1236

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1260

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1261

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1262

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1263

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1267

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1293

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1294

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1296

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1326

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1327

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1329

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1357

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1358

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1360

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1397

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1398

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1400

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1454

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1473

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

3.3
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1474

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1476

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1477

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1482

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1484

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1485

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer subtraction with addition → KILLED

1487

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

1489

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1490

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1492

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

1493

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1494

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1523

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1559

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1560

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1562

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1565

1.1
Location : indexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

1566

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1567

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1569

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1570

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1572

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3.3
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1573

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1574

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1577

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1603

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1604

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1606

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1641

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1642

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1644

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1671

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1672

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1674

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1712

1.1
Location : lastOrdinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1752

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1753

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1755

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1782

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1783

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1785

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1821

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1822

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1824

1.1
Location : lastIndexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : lastIndexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1825

1.1
Location : lastIndexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1827

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1828

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1830

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1831

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1834

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from -1 to 1 → KILLED

3.3
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1835

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1836

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1839

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1865

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1866

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1868

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

3.3
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1894

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1895

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1897

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

3.3
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1925

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_LocaleIndependence(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_LocaleIndependence(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1926

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1929

1.1
Location : containsIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1930

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_LocaleIndependence(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsIgnoreCase
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3.3
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_LocaleIndependence(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1931

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_LocaleIndependence(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1932

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_LocaleIndependence(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1935

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_LocaleIndependence(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1950

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1951

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1954

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1955

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1956

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1959

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1988

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1989

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1992

1.1
Location : indexOfAny
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1994

1.1
Location : indexOfAny
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1995

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1997

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1998

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1999

1.1
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

5.5
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2001

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2002

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2005

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2010

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2037

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2038

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2040

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2071

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2072

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2076

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2077

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2078

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2080

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2081

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2082

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2083

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2085

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2087

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

5.5
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2088

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2092

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2097

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2132

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2133

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2135

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2164

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2165

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2167

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2168

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2169

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2172

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2202

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2203

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2206

1.1
Location : indexOfAnyBut
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2208

1.1
Location : indexOfAnyBut
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2210

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2212

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2213

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2214

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

5.5
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2215

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2223

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2225

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2252

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2253

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2256

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2258

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2259

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : none
Replaced integer addition with subtraction → SURVIVED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2260

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2261

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2262

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2265

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2266

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2270

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2299

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2300

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2302

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2303

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2305

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2306

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2308

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2335

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2336

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2338

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2367

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2368

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2371

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2373

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2374

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2376

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2377

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2378

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2379

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2381

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2383

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

5.5
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2384

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2388

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2393

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2420

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2421

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2423

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2456

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2457

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2465

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2467

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2471

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2475

1.1
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2480

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2510

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2511

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2516

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2518

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2522

1.1
Location : lastIndexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2526

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2556

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2557

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2561

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
changed conditional boundary → KILLED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2562

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2565

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2568

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2569

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2572

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2611

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2612

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2616

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2617

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2619

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2620

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2624

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2629

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2630

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2633

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2636

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2640

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2666

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2667

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2669

1.1
Location : left
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2670

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2672

1.1
Location : left
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2673

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2675

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2699

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2700

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2702

1.1
Location : right
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2703

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2705

1.1
Location : right
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2706

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2708

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2737

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2738

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2740

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

4.4
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2741

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2743

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2746

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2747

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2749

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2782

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2783

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2785

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2786

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2789

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2790

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2792

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2824

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2825

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2827

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2828

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2831

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2832

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2834

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2865

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2866

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2869

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2870

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2872

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2905

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2906

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2908

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2909

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2912

1.1
Location : substringAfterLast
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2913

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2915

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2942

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

2973

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2974

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

2977

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2978

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2979

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2980

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

2983

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3009

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3010

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3013

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3014

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3020

1.1
Location : substringsBetween
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substringsBetween
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3022

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
changed conditional boundary → KILLED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3025

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3027

1.1
Location : substringsBetween
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3031

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3033

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3034

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3036

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3067

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3095

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3124

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3158

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3185

1.1
Location : splitByWholeSeparator
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED

3216

1.1
Location : splitByWholeSeparator
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED

3245

1.1
Location : splitByWholeSeparatorPreserveAllTokens
Killed by : none
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

3278

1.1
Location : splitByWholeSeparatorPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3297

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3298

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3303

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3304

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3307

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3309

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3318

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
changed conditional boundary → TIMED_OUT

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3321

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
changed conditional boundary → TIMED_OUT

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3322

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBoolean(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3323

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3325

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3336

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3340

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3341

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3342

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3349

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
Replaced integer addition with subtraction → TIMED_OUT

3358

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3387

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3423

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3441

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3442

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3445

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3446

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3452

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3453

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3454

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3459

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3464

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3466

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3469

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3506

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3546

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3568

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3569

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3572

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3573

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3580

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3582

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3583

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3584

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3586

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3593

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3598

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3600

1.1
Location : splitWorker
Killed by : none
negated conditional → SURVIVED

3603

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3604

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3605

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3607

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3614

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3619

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3623

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3624

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3625

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3627

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3634

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3639

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3642

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3645

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3668

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3696

1.1
Location : splitByCharacterTypeCamelCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterTypeCamelCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

3714

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3715

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3717

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3718

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3724

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3726

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3729

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3730

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3731

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3732

1.1
Location : splitByCharacterType
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3736

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3741

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3742

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3771

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3797

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3798

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3800

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3829

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3830

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3832

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3861

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3862

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3864

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3893

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3894

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3896

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3925

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3926

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3928

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3957

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3958

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3960

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3989

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3990

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3992

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4021

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4022

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4024

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4055

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4056

1.1
Location : join
Killed by : none
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

4058

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4059

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4060

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4062

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4063

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4064

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4067

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4071

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4106

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4107

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4109

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4110

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4111

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4113

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4114

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4115

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4120

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4155

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4156

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4158

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4159

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4160

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4162

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4163

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4164

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4169

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4204

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4205

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4207

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4208

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4209

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4211

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4212

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4213

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4218

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4253

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4254

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4256

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4257

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4258

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4260

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4261

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4262

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4267

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4302

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4303

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4305

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4306

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4307

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4309

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4310

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4311

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4316

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4351

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4352

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4354

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4355

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4356

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4358

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4359

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4360

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4365

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4400

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4401

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4403

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4404

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4405

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4407

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4408

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4409

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4414

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4442

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4443

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4445

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4484

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4485

1.1
Location : join
Killed by : none
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

4487

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4493

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4494

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4495

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4498

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4500

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4501

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4504

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4508

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4528

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4529

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4531

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4532

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4535

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4537

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4542

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4546

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4549

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4554

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4573

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4574

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4576

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4577

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4580

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4582

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4587

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4591

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4592

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4596

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4600

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4618

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4619

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4621

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4639

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4640

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4642

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4666

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWithThrowsException(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4675

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4679

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4684

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::joinWith to ( if (x != null) null else throw new RuntimeException ) → KILLED

4704

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4705

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4710

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4711

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4712

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

4715

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4716

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4718

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4748

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4749

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4751

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4752

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4754

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4783

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4784

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4786

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4787

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4789

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4817

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4818

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4820

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4821

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4823

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4853

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4854

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4856

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4857

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4859

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4886

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4887

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4889

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4926

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4927

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4929

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4952

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4953

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4957

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4958

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4959

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

4962

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

5009

1.1
Location : removeAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5055

1.1
Location : removeFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5084

1.1
Location : replaceOnce
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnce to ( if (x != null) null else throw new RuntimeException ) → KILLED

5113

1.1
Location : replaceOnceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnceIgnoreCase_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5156

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5157

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5159

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5193

1.1
Location : removePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5245

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5246

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5248

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5298

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5299

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5301

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5328

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5356

1.1
Location : replaceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceIgnoreCase_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5388

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5423

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5424

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5427

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5433

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5434

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5437

1.1
Location : replace
Killed by : none
Replaced integer subtraction with addition → SURVIVED

5438

1.1
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5439

1.1
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : replace
Killed by : none
Replaced integer multiplication with division → SURVIVED

4.4
Location : replace
Killed by : none
negated conditional → SURVIVED

5.5
Location : replace
Killed by : none
negated conditional → SURVIVED

5440

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringEscapeUtilsTest.testEscapeCsvWriter(org.apache.commons.lang3.StringEscapeUtilsTest)
Replaced integer addition with subtraction → KILLED

5441

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5443

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5444

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5450

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5483

1.1
Location : replaceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5526

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5574

1.1
Location : replaceEachRepeatedly
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5575

1.1
Location : replaceEachRepeatedly
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEachRepeatedly to ( if (x != null) null else throw new RuntimeException ) → KILLED

5634

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6.6
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5636

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5640

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5649

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5666

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5667

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5668

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5674

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5677

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5686

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5687

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5696

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

5697

1.1
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5700

1.1
Location : replaceEach
Killed by : none
Replaced integer subtraction with addition → SURVIVED

5701

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

5702

1.1
Location : replaceEach
Killed by : none
Replaced integer multiplication with division → SURVIVED

2.2
Location : replaceEach
Killed by : none
Replaced integer addition with subtraction → SURVIVED

5706

1.1
Location : replaceEach
Killed by : none
Replaced integer division with multiplication → SURVIVED

5708

1.1
Location : replaceEach
Killed by : none
Replaced integer addition with subtraction → SURVIVED

5710

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5712

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5717

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5724

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5725

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5726

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5732

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5735

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5745

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5749

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5750

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5753

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5779

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testLang623(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5780

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringCharChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5782

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testLang623(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5822

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5823

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5825

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5832

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5835

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5837

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5844

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5845

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5847

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5882

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5883

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED

5885

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5889

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5892

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5895

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5898

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5901

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5906

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : overlay
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5.5
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED

5941

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5942

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5945

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5947

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5948

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5950

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5953

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

5956

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5957

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5958

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

5960

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5961

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

5963

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5995

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

6024

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6025

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6028

1.1
Location : chop
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6029

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6031

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6034

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6035

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6037

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6066

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6067

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6069

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6070

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6073

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6074

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6076

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : repeat
Killed by : none
negated conditional → SURVIVED

6077

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6080

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer multiplication with division → KILLED

6083

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6088

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : none
Changed increment from -1 to 1 → TIMED_OUT

3.3
Location : repeat
Killed by : none
Changed increment from -1 to 1 → TIMED_OUT

4.4
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer multiplication with division → KILLED

5.5
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6.6
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6090

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6092

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6095

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6098

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6123

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6124

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6128

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6154

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6155

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6158

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

3.3
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6161

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6184

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6209

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6210

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6212

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6213

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6214

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6216

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6217

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6219

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6246

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6247

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6249

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6254

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6255

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6256

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6258

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6259

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6262

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6263

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6264

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6265

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6269

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6270

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

6272

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6296

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6321

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6322

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6324

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6325

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6326

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6328

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6329

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6331

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6358

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6359

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6361

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6366

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6367

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6368

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6370

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6371

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6374

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6375

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6376

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6377

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6381

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6382

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

6384

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6400

1.1
Location : length
Killed by : org.apache.commons.lang3.StringUtilsTest.testLengthString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : length
Killed by : org.apache.commons.lang3.StringUtilsTest.testLengthString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6429

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6457

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6458

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6461

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6462

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6463

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6465

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6467

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6497

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6498

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6500

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6504

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6505

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6506

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6508

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6510

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6535

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6536

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6538

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6558

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6559

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6561

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6584

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6585

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6587

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6607

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6608

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6610

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6636

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6637

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6642

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6644

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6649

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6650

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6652

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6653

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6655

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6681

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6682

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6687

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6689

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6694

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6695

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6697

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6698

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6700

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6731

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6732

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6738

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6741

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6743

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6745

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6750

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6751

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6753

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6779

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6780

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6784

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6785

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Changed increment from 1 to -1 → KILLED

6786

1.1
Location : countMatches
Killed by : none
Replaced integer addition with subtraction → TIMED_OUT

6788

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6811

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6812

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6816

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
changed conditional boundary → KILLED

2.2
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6817

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6818

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
Changed increment from 1 to -1 → KILLED

6821

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6847

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6848

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6851

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6852

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6853

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6856

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6882

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6883

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6886

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6887

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6888

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6891

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6917

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6918

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6921

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6922

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6923

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6926

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6952

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6953

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6956

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6957

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6958

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6961

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6991

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6992

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6995

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6996

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6997

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7000

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7035

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7036

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7039

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7040

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7041

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7044

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7074

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7075

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7078

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7079

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7080

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7083

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7109

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7110

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7113

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7114

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7115

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7118

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7144

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7145

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7148

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7149

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7150

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7153

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7179

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7180

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7183

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7184

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7185

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7188

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7210

1.1
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED

7231

1.1
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED

7255

1.1
Location : defaultIfBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultIfBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfBlank to ( if (x != null) null else throw new RuntimeException ) → KILLED

7277

1.1
Location : defaultIfEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultIfEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

7309

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7310

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7314

1.1
Location : rotate
Killed by : none
Replaced integer modulus with multiplication → SURVIVED

2.2
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7315

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7319

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
removed negation → KILLED

2.2
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

7322

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7342

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7343

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED

7345

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED

7368

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7369

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED

7374

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
removed call to org/apache/commons/lang3/ArrayUtils::reverse → KILLED

7375

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED

7413

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7453

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7493

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7534

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7535

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7539

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7540

1.1
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

7542

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7545

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7546

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7548

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7551

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7552

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : none
Replaced integer subtraction with addition → SURVIVED

7554

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7555

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7557

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7560

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7561

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7563

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7596

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7597

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7600

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

3.3
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7601

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7604

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7605

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

3.3
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7606

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7613

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7647

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7648

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7650

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7651

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7654

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7655

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7657

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7686

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7687

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7689

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7690

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7693

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

4.4
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7694

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7698

1.1
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7699

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7701

1.1
Location : indexOfDifference
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

7737

1.1
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7738

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7749

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7750

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7761

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7762

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7766

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7767

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7772

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7774

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7775

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7780

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7785

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7789

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7791

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7828

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7829

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7832

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7834

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7835

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7837

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7838

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7840

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7843

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7882

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7889

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7890

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7891

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7892

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7895

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

7904

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7914

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

7918

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7920

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7923

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7925

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7927

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7932

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7968

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_NullStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringNullInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7971

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringNegativeInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8023

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8024

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8025

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8026

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8029

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8030

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8033

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

8042

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8043

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8047

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8048

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

8053

1.1
Location : getLevenshteinDistance
Killed by : none
removed call to java/util/Arrays::fill → SURVIVED

8054

1.1
Location : getLevenshteinDistance
Killed by : none
removed call to java/util/Arrays::fill → SURVIVED

8057

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8058

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8062

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8063

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8066

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8067

1.1
Location : getLevenshteinDistance
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

8071

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8072

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8076

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8077

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8079

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8082

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8094

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8095

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8097

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8137

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8143

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8144

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED

8146

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

4.4
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

6.6
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

8147

1.1
Location : getJaroWinklerDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

4.4
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

6.6
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8148

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED

8186

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8192

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8193

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED

8195

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

4.4
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

6.6
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

8196

1.1
Location : getJaroWinklerSimilarity
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

4.4
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

6.6
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8197

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED

8202

1.1
Location : matches
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8209

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8211

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
removed call to java/util/Arrays::fill → KILLED

8214

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8216

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5.5
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6.6
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8217

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8220

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8227

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8228

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8230

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8233

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8234

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8236

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8240

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8241

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8242

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8246

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8247

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8248

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8253

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::matches to ( if (x != null) null else throw new RuntimeException ) → KILLED

8283

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance_NullStringLocale(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance_StringNullLoclae(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8285

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance_StringStringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8306

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8310

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8313

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8315

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8319

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8320

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 2 to -2 → KILLED

8332

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8361

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8387

1.1
Location : startsWithIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8402

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8403

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWith(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

3.3
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8405

1.1
Location : startsWith
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8406

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8408

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8434

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

2.2
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8435

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8437

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
changed conditional boundary → KILLED

2.2
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8438

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8439

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8442

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8473

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8500

1.1
Location : endsWithIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8515

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8516

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWith(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

3.3
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8518

1.1
Location : endsWith
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8519

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8521

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8522

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8569

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8570

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8577

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8580

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8582

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8585

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8586

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8588

1.1
Location : normalizeSpace
Killed by : none
Changed increment from 1 to -1 → SURVIVED

8591

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8592

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8594

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : normalizeSpace
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8619

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

2.2
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8620

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8622

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
changed conditional boundary → KILLED

2.2
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8623

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8624

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8627

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8642

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8643

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8645

1.1
Location : appendIfMissing
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8646

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8647

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8648

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8652

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8690

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8728

1.1
Location : appendIfMissingIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

8743

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8744

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8746

1.1
Location : prependIfMissing
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8747

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8748

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8749

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8753

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8791

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8829

1.1
Location : prependIfMissingIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

8849

1.1
Location : toString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : toString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toString to ( if (x != null) null else throw new RuntimeException ) → KILLED

8866

1.1
Location : toEncodedString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToEncodedString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : toEncodedString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToEncodedString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toEncodedString to ( if (x != null) null else throw new RuntimeException ) → KILLED

8892

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8893

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8896

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8930

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8931

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8934

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8963

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8964

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8966

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8967

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8971

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8974

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

9007

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9008

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

9010

1.1
Location : wrapIfMissing
Killed by : none
Replaced integer addition with subtraction → SURVIVED

2.2
Location : wrapIfMissing
Killed by : none
Replaced integer addition with subtraction → SURVIVED

9011

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9015

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9018

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

9047

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9048

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9051

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9055

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9056

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9060

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9088

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9089

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9092

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9094

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

9095

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9096

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9100

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

Active mutators

Tests examined


Report generated by PIT 1.1.10